Pandas的魅力在于处理数据的灵活性,但是由于太灵活,会导致使用者很容易忘记各类方法。在Pandas学习这件事情上,真正体现了好记性不如烂笔头的方法特性。故特用此文章记录Pandas常用的数据处理方法,需要用的时候,打开此文章直接查阅即可。
1.多列排序
enddf=newdf.sort_values(['date','Buypower'],ascending=[True,False])
2.数组差集
set(tradedate).difference(set(dailylist))
3.按列条件更新 (等同SQL: update xxx=zzz where yyy)
datadf.loc[(datadf.bigamount > 300 * 10000) & (datadf.bigamount <= 1000 * 10000), 'bigamount'] = 300 * 10000
4.列转换成date类型
subdf2.date=pd.to_datetime(subdf2.date)
5.设置多级索引:
df.set_index(['ts_code','date'])
6.相邻行操作:
df=df.apply(lambda x:x-x.shift(1))
7.lambda用if:
df=df.apply(lambda x:x/x.shift(1) if x.name[0] == x.shift(1).name[0] else x )
8.删除空行:
weekdf=weekdf.dropna()
9.matplotlib画柱状图:
subdf2.plot(kind='bar',title=code)
10.matplotlib画水平线:
plt.axhline(y=8000, color='r', linestyle='-')
11.matplotlib柱状图上添加数量标签文字:
for x, y in enumerate(subdf2['vol'].values):
print(x, y)
plt.text(x-0.5, y+50, "%s" %y)
12.列重命名:
enddf=enddf.rename(columns={'index':'ts_code'})
13.列截取字符串:
mergdf.list_date = mergdf.list_date.str[:4]
14.timedelta取出天数:
mergdf.list_date=mergdf.list_date.astype('timedelta64[D]').astype(int)
15.Series转换成dataframe:
grpdf=grpdf.to_frame()
16.某列包含字符串,相当于SQL中的 like %xx%。
df0[df0.UpReason.str.contains('xxx')
17.删除某列
df.drop('Type', axis='columns')