我有一个如下的数据框架:
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这里的概念是全局将永远是Argentina,Venice和Others的总和。但是Others row永远不会被提及。我希望保持数据帧的相同结构,因为它必须通过进一步的代码。
那么如何使用公式Others = Global - Argentina - Venice在表中创建一个单独的其他行呢
预期的数据帧:
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语句,但考虑到所有的编码,我不确定这是否是一种好方法
发布于 2020-11-05 04:12:44
试试这个
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)https://stackoverflow.com/questions/64685175
复制相似问题