DataFrame的构建及一些操作

一、DataFrame构建

1.用多个列表构建

构建DataFrame

self._stkpool_uni、codes、end_date(这些list用append填充值,保证各个list中元素个数一致)

dfData = {“STK_UNI_CODE”:self._stkpool_uni, “STK_CODE”:codes, “END_DATE”:end_date,
“SCORE_FAC”:score, “DIS_FAC”:descri, “RAT_FAC”:star, “MAC_FAC”:mac}
df = pd.DataFrame(data=dfData)

2.用一个列表构建(其中列表元素为dict,dict的值来自tuple)

findata_list = [] #定义一个空list
for res in query_Object: #res是元组
dict_fin = {} #定义一个空dict
for arr in range(0,len(res)): #for循环元组
dict_fin[columns[arr]] = res[arr] #给dict填值
findata_list.append(dict_fin) #给list填值
dfQuery = pd.DataFrame(findata_list) #通过list构建DataFrame

3.指定列的顺序

df_data = {“公式代码”:gsCode, “股票市场”:gpMarket, “股票代码”:gpCode, “日期”:signalDate, “新接口”:mField, “老接口”:mFieldOnline}
col = [‘公式代码’,’股票市场’,’股票代码’,’日期’,’新接口’,’老接口’]
df = pd.DataFrame(data=df_data,columns=col)

二、DataFrame一系列小操作总结

1.DataFrame排序

①.根据列值排序(sort_values)

df_return = df_return.sort_values([‘date’, ‘gpcode’], ascending=[0,1]) # 排序,0倒序,1正序

②.根据索引值排序(sort_index)

dfSort = dfSort.sort_index(ascending=False)

2.DataFrame query

strsql = “index

3.DataFrame groupby、pandas.core.groupby.GroupBy.nth

strsql = “index

gb = df_entrydate.groupby(‘gpcode’) #按gpcode分组

ret = gb.nth(0) #取groupby之后的第1组数据

4.DataFrame取值

①根据已知索引取值(ix)

res= dfQuery.ix[index]

②取一段数据块(iloc, loc)

1.ret = copy.copy(df_entrydate.iloc[:1]) #取dataframe第一行数据

2.

DataFrame的构建及一些操作

5.DataFrame修改值

①更改某列的某一个值(loc[索引值,列名])

df_stopdate.loc[df_stopdate.index, “date”] = dict_stopdate[key]

②df_stopdate[‘date’][1]= ‘2016-01-01’

df_stopdate[‘date’] = ‘2016-01-01’

6.DataFrame设置索引(set_index)

①重置索引(reset_index)

df_return = df_return.reset_index()

②设置索引(set_index)

df_return = df_return.set_index(‘a’, ‘b’)

import copy
ret = copy.copy(df_entrydate.iloc[:1]) #取dataframe第一行数据
ret.index=[[gpcode],[date]]
ret.index.names=[“gpcode”,”date”]
df_return = df_return.append(ret)

7.DataFrame取一列索引的值

①一重索引取值

df.index.tolist()

②多重索引取值(df.index.get_level_values(‘列名’))

dfQuery.index.get_level_values(‘gpcode’)

8.DataFrame删除

① 某一列(del)

del(df_entrydate[“gpcode”])

② 某一列(drop、axis=1)

df = df.drop([‘col1′,’col2’],axis=1)

③ 某一行(drop、axis=0)

df = df.drop([0],axis=0) #删除第一行

9.DataFrame的某一列转换类型

prit dfQuery.dtypes

DataFrame的构建及一些操作

pandas中没有”string”,string类型的被存为object。

将date列转换成datetime64类型

import numpy as np

dfQuery[‘date’] = dfQuery[‘date’].astype(np.dtype(“datetime64”))

print dfQuery.dtypes

DataFrame的构建及一些操作

未完待续。。。

其他操作参见:http://www.cnblogs.com/chaosimple/p/4153083.html

Original: https://www.cnblogs.com/SZxiaochun/p/6290514.html
Author: 那一剑的風情
Title: DataFrame的构建及一些操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/559847/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球