我有一个这样的数据框。

    FOOD_ID  Cumulative_addition
0       110     0
1       110     15
2       110     15
3       110     35
4       111     0
5       111     10
6       111     10


我想添加另一列,该列仅为特定的食品ID提供添加。我想要的最终数据帧如下所示。

    FOOD_ID  Cumulative_addition  Addition_Only
0       110     0                     0
1       110     15                   15
2       110     15                    0
3       110     35                   20
4       111     0                     0
5       111     10                   10
6       111     10                    0


我知道如何在Excel中使用if语句执行此操作,但不知道如何在python中执行此操作。

最佳答案

尝试:

df['Addition_only'] = (df.groupby('FOOD_ID').Cumulative_addition.shift(-1) - df.Cumulative_addition).shift(1).fillna(0)


详情

df.groupby('FOOD_ID').Cumulative_addition.shift(-1)


将为组赋予按食物ID分组的累加列,然后将其移动1行。

您可以减去原始列以获得差异,然后将其向后移一排。

希望能有所帮助。

关于python - 如果其他条件在python中在dataframe中创建新列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59596812/

10-11 02:42