我有一个这样的数据框。
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/