Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通用代码中某些列的第一个差异_Python_Python 3.x_Pandas_List_Dataframe - Fatal编程技术网

Python 通用代码中某些列的第一个差异

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

有没有一种方法可以生成第一个差异数据帧(fd_-df),该数据帧保持fruit,var1,与df的日期一致,但首先按fruit对所有剩余变量进行差异?我有20个列来表示第一个差异(包括价格和成本),因此需要通用代码。

IIUC,您可以
设置要保留的列,并使用水果上的
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