python - Pandas 中的滚动减法

标签 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 以及其他统计信息。 有办法吗? 我在想我可以创建两个 df:一个 - 消除每个 uid 的第一行,第二个 - 消除每个 uid 的最后一行。但老实说,我不知道如何为每个 uid 动态地做到这一点。

最佳答案

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

关于python - Pandas 中的滚动减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50798853/

相关文章:

Python 菜单不循环?

Python:如何生成具有预定义节点位置的无标度网络?

Python 循环遍历 txt 文件来创建和合并 Pandas Dataframes

python - 如何在python中屏蔽对象的轮廓

python - 在ubuntu上将django sqlite数据库迁移到mysql

python - 创建一个支持 json 序列化的类以用于 Celery

mongodb - 从 mongodb 文档创建矩阵

python - 对 CSV 文件中的每四个元素求平均值

python - 当事先未知维数和选择标准时,将列表传递给 numpy.ix_,或者如何对多维数组进行切片?

python - 将字典的内容导出到 m x n 矩阵