Python 通用代码中某些列的第一个差异
有没有一种方法可以生成第一个差异数据帧(fd_-df),该数据帧保持fruit,var1,与df的日期一致,但首先按fruit对所有剩余变量进行差异?我有20个列来表示第一个差异(包括价格和成本),因此需要通用代码。IIUC,您可以Python 通用代码中某些列的第一个差异,python,python-3.x,pandas,list,dataframe,Python,Python 3.x,Pandas,List,Dataframe,有没有一种方法可以生成第一个差异数据帧(fd_-df),该数据帧保持fruit,var1,与df的日期一致,但首先按fruit对所有剩余变量进行差异?我有20个列来表示第一个差异(包括价格和成本),因此需要通用代码。IIUC,您可以设置要保留的列,并使用水果上的groupby.diff,然后重置_索引将索引恢复为列 df fruit date price cost var1 0 apple 2017-01-01
设置要保留的列,并使用水果上的groupby.diff
,然后重置_索引
将索引恢复为列
df fruit date price cost var1
0 apple 2017-01-01 2 2 20
1 apple 2017-01-02 3 3 40
2 banana 2017-01- 02 4 4 20
2 banana 2017-01-02 4 4 10
能否添加预期的输出代码/数据帧?什么是“第一个区别”?
df_ = (df.set_index(['fruit','date','var1'])
.groupby(level='fruit').diff()
.reset_index()
)
print(df_)
fruit date var1 price cost
0 apple 2017-01-01 20 NaN NaN
1 apple 2017-01-02 40 1.0 1.0
2 banana 2017-01-02 20 NaN NaN
3 banana 2017-01-02 10 0.0 0.0