为了账号安全,请及时绑定邮箱和手机立即绑定

广义代码中某些列的一阶差分

广义代码中某些列的一阶差分

aluckdog 2023-06-27 18:24:50
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有没有办法生成一阶差分数据帧(fd_df),该数据框保留水果,var1,日期与 df ,但通过水果对所有剩余变量进行一阶差分?我有 20 列需要一阶差分(包括价格和成本),因此需要通用代码。
查看完整描述

1 回答

?
www说

TA贡献1775条经验 获得超8个赞

IIUC,您可以set_index保留想要保留的列并groupby.diff在水果上使用,然后reset_index将索引恢复为列。


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


查看完整回答
反对 回复 2023-06-27
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信