1.原始数据
如图是从CSMAR上下载的原始数据,Fdt007是结算价格,Fdt010是当日成交量,Agmtcd是合约名称。
现在我们为了清洗得到主力合约的数据,需要只取每一天里成交量最高的那个合约的那一行数据
2.python代码
(1)导入数据
import pandas as pd
df=pd.read_csv('hj.csv')
结果:
(2)分组,取最大值所在行
df=df.groupby('Trddt').apply(lambda t: t[t.Fdt010==t.Fdt010.max()]) #只取每一天Fdt010最大的一行
df=df.set_index('Trddt') #将时间列转为索引
结果:
(3)导出数据
df.to_csv('hj2.csv',sep=',',index=True,header=True,encoding='utf_8_sig')