【问题标题】:How can I add a calculated column to a Pandas dataframe? [duplicate]如何将计算列添加到 Pandas 数据框中? [复制]
【发布时间】:2020-12-13 15:37:10
【问题描述】:

我的数据框如下所示:

df.head(6)
   City        Date      Total_Cases   Country      State
0  Autauga  2020-01-29     0             US        Alabama
1  Autauga  2020-01-30     3             US        Alabama
2  Autauga  2020-01-31     5             US        Alabama
3  Weston   2020-01-01     0             US        Wyoming
4  Weston   2020-01-02     2             US        Wyoming
5  Weston   2020-01-03     2             US        Wyoming

我想插入一个名为New_Cases 的新列,它是今天的Total_Cases 减去昨天的Total_Cases,按城市/州划分。

   City        Date      Total_Cases  New_Cases  Country      State
0  Autauga  2020-01-29     0             0        US        Alabama
1  Autauga  2020-01-30     3             3        US        Alabama
2  Autauga  2020-01-31     5             2        US        Alabama
3  Weston   2020-01-01     0             0        US        Wyoming
4  Weston   2020-01-02     2             2        US        Wyoming
5  Weston   2020-01-03     2             0        US        Wyoming

【问题讨论】:

    标签: python-3.x pandas dataframe


    【解决方案1】:

    您可以在这里尝试使用shift

    df['New_Cases'] = df.Total_Cases - df.groupby(['City', 'State'])['Total_Cases'].shift(1).fillna(0)
    

    【讨论】:

    • 酷............
    • 我认为它应该更像df.Total_Cases - df.groupby(["City", "State"])["Total_Cases"].shift(1).fillna(0) 假设日期也已排序
    • Tim Biegeleisen 您的代码缺少@sammywemmy 添加的减号之前的部分。非常感谢你们的帮助。另一位社区成员也使用 diff() 函数在另一篇文章中引用了类似的解决方案
    猜你喜欢
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2017-11-27
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    相关资源
    最近更新 更多