每列加两列

2024-09-28 16:22:57 发布

您现在位置:Python中文网/ 问答频道 /正文

假设这是我的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函数来实现输出。你知道吗

我想不出一个办法。有什么帮助吗?你知道吗


Tags: 方法dfgroupcol手动nanapplycold
1条回答
网友
1楼 · 发布于 2024-09-28 16:22:57

使用^{}ed DataFrame^{},没有第一列被^{}选中或被^{}删除,最后按列名称列表筛选:

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

相关问题 更多 >