在熊猫滚动减法

时间:2018-06-11 13:27:27

标签: python pandas numpy

我正在尝试做类似的事情。

ff = pd.DataFrame({'uid':[1,1,1,20,20,20,4,4,4],
                   'date':['09/06','10/06','11/06',
                           '09/06','10/06','11/06',
                           '09/06','10/06','11/06'],
                   'balance':[150,200,230,12,15,15,700,1000,1500],
                  'difference':[np.NaN,50,30,np.NaN,3,0,np.NaN,300,500]})

我尝试过滚动,但我找不到减去的函数或滚动子类,只有sum和var以及其他stats。 有办法吗? 我原以为我可以创建两个df:一个 - 每个uid的第一行被删除,第二行 - 每个uid的最后一行被删除。但说实话,我不知道如何动态地为每个uid做到这一点。

1 个答案:

答案 0 :(得分:1)

groupbydiff

一起使用
df = pd.DataFrame({'uid':[1,1,1,20,20,20,4,4,4],
                   'date':['09/06','10/06','11/06',
                           '09/06','10/06','11/06',
                           '09/06','10/06','11/06'],
                   'balance':[150,200,230,12,15,15,700,1000,1500]})

df['difference'] = df.groupby('uid')['balance'].diff()

输出:

   uid   date  balance  difference
0    1  09/06      150         NaN
1    1  10/06      200        50.0
2    1  11/06      230        30.0
3   20  09/06       12         NaN
4   20  10/06       15         3.0
5   20  11/06       15         0.0
6    4  09/06      700         NaN
7    4  10/06     1000       300.0
8    4  11/06     1500       500.0