【问题标题】:Create New Column based on difference which restarts with new Value根据以新值重新启动的差异创建新列
【发布时间】:2020-11-19 13:51:32
【问题描述】:

我目前正在使用 pandas 并且有一个当前看起来像这样的 df:

     LOCATION   TIME   Value       
0         AUS   2000   33.595673       
1         AUS   2001   57.862362
2         AUS   2002   58.588608
3          UK   2000   61.7
4          UK   2001   63.243232
5          UK   2002   66.235122

我想添加另一列,列出值列中后续行之间的差异,但希望它在 LOCATION 更改时重新启动。所以本质上它应该在上面示例中的第 2 行和第 3 行之间重新启动

【问题讨论】:

标签: python pandas


【解决方案1】:

如果我正确理解您在寻找什么,解决方案是:

df.groupby("LOCATION").diff()

输出是:

   TIME      Value
0   NaN        NaN
1   1.0  24.266689
2   1.0   0.726246
3   NaN        NaN
4   1.0   1.543232
5   1.0   2.991890

【讨论】:

    【解决方案2】:
     df['valuedif']=df[['LOCATION', 'TIME', 'Value']].groupby('LOCATION').Value.apply(lambda x: x.diff())
    print(df)
    
    
    
      LOCATION  TIME      Value   valuedif
    0      AUS  2000  33.595673        NaN
    1      AUS  2001  57.862362  24.266689
    2      AUS  2002  58.588608   0.726246
    3       UK  2000  61.700000        NaN
    4       UK  2001  63.243232   1.543232
    5       UK  2002  66.235122   2.991890
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多