如果其他条件在python中在dataframe中创建一个新列

Temp_coder

我有一个这样的数据框。

    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

我知道如何使用if语句在excel中执行此操作,但不知道如何在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行。

您可以减去原始列以获取差异并将其向后移一排。

希望能有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过多个列组,创建一个基于Python中条件的新列?

创建一个新列,以合并列表中其他两个列的内容

如果在其他两个类中不存在新对象,如何在Python Django中创建一个新对象?

根据从python中其他两个字符串列应用的条件创建一个新列

根据其他列创建一个新列

如果其他列中存在值,则在Dataframe中创建一列

如何根据python中其他多个列的名称创建一个列?

创建一个新列,在其他列中查找值

根据其他列中的值替换一个值,如果不满足条件则保留原样

根据R中其他列的条件创建一个新列

使用其他列的元素在熊猫中创建一个新列

根据其他列的if条件创建一个新列

根据其他列中的条件创建一个BOOL列

根据其他两列中的条件在R中创建一个新列

如何使用dplyr以R中其他两个列的出现为条件创建一个新列?

根据R中的其他两列创建一个新的分类“比较检测”列(九个选项答案)

根据其他列行中的过滤值,在pandas数据框中创建一个新列

根据其他两个条件创建一个新列

根据其他列R中的不同值创建一个新列R

根据组中其他列中至少一个变量的出现创建新列

Python groupby - 根据其他列中的值创建一个新列

根据现有数据框中的其他列创建一个新列

如何创建一个新列,其值取决于其他列中的值?

Pandas 创建一个具有多个其他列的复杂条件的新列

Pandas:创建一个新列,在其他两列中的值之间交替

如果列在另一个 Spark Dataframe 中,Pyspark 创建新列

创建一个新列作为 R 中其他列中的最小值

创建一个基于数据框中其他列的值创建新列的函数

根据其他列创建一个具有值的新列 - 在 R 中