Python 相互添加两列
假设这是我的Python 相互添加两列,python,pandas,Python,Pandas,假设这是我的df我正在寻找一种将一列添加到另一列的方法。 例如: 除了“col a”之外,其他所有东西都应该相互添加 colb+colc,cold+cole,colf+colg,colh+coli a b c d e f g h i group A 0.15 0.1 0.1 0.15 0.15
df
我正在寻找一种将一列添加到另一列的方法。
例如:
除了“col a”之外,其他所有东西都应该相互添加
colb+colc,cold+cole,colf+colg,colh+coli
a b c d e f g h i
group
A 0.15 0.1 0.1 0.15 0.15 0.1 0.1 0.10 0.05
B 0.13 NaN NaN NaN 0.40 0.2 NaN 0.13 0.06
期望输出:
a b d f h
group
A 0.15 0.2 0.30 0.2 0.15
B 0.13 NaN 0.40 0.2 0.19
我知道我可以手动添加这两个列,但我正在寻找一种更简单的方法或应用函数来实现输出
我想不出一个办法。有任何帮助吗?使用ed数据帧
,没有选择或删除第一列,最后按列名称列表筛选:
cols = ['a','b','d','f','h']
df = df.add(df.iloc[:, 1:].shift(-1,axis=1), fill_value=0)[cols]
备选方案:
df = df.add(df.drop('a', axis=1).shift(-1,axis=1), fill_value=0)[cols]
print (df)
a b d f h
group
A 0.15 0.2 0.3 0.2 0.15
B 0.13 NaN 0.4 0.2 0.19
df['b']=df['b']+df['c']
或df['d']=df['d']+df['e']
使用这种方法。@Rohit Pandey我知道这种方法,但我在寻找更有效的方法。这就是@jezraelCan的答案,我知道填充u值在这里真正做什么?@user456-填充现有的缺失(NaN)值,以及成功对齐数据帧所需的任何新元素,在计算之前使用此值。如果两个对应数据帧位置中的数据都丢失,则结果将丢失,通过(df+df.drop('a',axis=1).shift(-1,axis=1))[cols]检查差异