pandas数据帧中的行级算术运算



我有一个数据帧如下:

df:
Heir_1      Heir_2          Amount_1        Amount_2
0   New         Argentina       251823845.90    225432949.80
1   New         Venice          219982836.00    183705325.60
2   New         Denmark         419848669.41    546624742.50
3   New         Russia          218120340.46    151480060.80
4   New         Global          4706066755.41   4432657926.66

这里的概念是全局总是ArgentinaVeniceOthers的和。但Others行将永远不会被提及。我想保持数据帧的相同结构,因为它必须经过进一步的代码。

那么,我如何使用公式Others = Global - Argentina - Venice在表中单独创建一行Others

预期数据帧:

df:
Heir_1      Heir_2          Amount_1        Amount_2
0   New         Argentina       251823845.90    225432949.80
1   New         Venice          219982836.00    183705325.60
2   New         Denmark         419848669.41    546624742.50
3   New         Russia          218120340.46    151480060.80
4   New         Global          4706066755.41   4432657926.66
5   New         Others          4234260073.51   4023519651.25

相关问题:

还有一个问题,没有必要在所有场景中都出现这3行。可能有一天Argentina缺席,或者Venice缺席或Global缺席。

在这种情况下,有3^3种场景的可能性。在这种情况下,我可以使用if语句,但不确定这是否是考虑所有编码的好方法

尝试使用此

if df[df['Heir_2']=='Global'].shape[0]:
df_special = df[df['animal'].isin(['Argentina','Venecia'])].sum()
amount_1 = df[df['Heir_2']=='Global']['Amount_1'] - df_special['Amount_1']
amount_2 = df[df['Heir_2']=='Global']['Amount_2'] - df_special['Amount_2']
df.append({'Heir_1':'New','Heir_2':'Others','Amount_1':amount_1,'Amount_2':amount_2},ignore_index=True)

相关内容

  • 没有找到相关文章

最新更新