假设这是我的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
我知道我可以手动添加两个列,但是我正在寻找一种更简单的方法或一个Apply函数来实现输出。
我找不到办法。有帮助吗?
答案 0 :(得分:2)
使用add
版DataFrame
中的shift
,而没有第一列被iloc
选择或被drop
删除,最后一个按列名称列表过滤: / p>
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