pandas列的条件求和

2024-09-28 22:35:55 发布

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

我有以下熊猫数据库:

Student-ID   Last-name   First-name  HW1  HW2  HW3  HW4  HW5  M1   M2  Final
59118211           Alf        Brian   96   90   88   93   96  78   60   59.0
59260567      Anderson         Jill   73   83   96   80   84  80   52   42.5
59402923     Archangel      Michael   99   80   60   94   98  41   56    0.0
59545279         Astor         John   93   88   97  100   55  53   53   88.9
59687635        Attach         Zach   69   75   61   65   91  90   63   69.0

我只想添加那些有“HW”的列。有什么建议吗?在

注意:包含HW的列数可能不同。所以我不能直接引用它们。在


Tags: nameid数据库studentfinalfirstlasthw
2条回答

您可以df.filter(regex='HW')返回列名,如'HW',然后通过sum(axis-1)应用行汇总

In [23]: df
Out[23]:
   StudentID   Lastname Firstname  HW1  HW2  HW3  HW4  HW5  HW6  HW7   M1
0   59118211        Alf     Brian   96   90   88   93   96   97   88   10
1   59260567   Anderson      Jill   73   83   96   80   84   99   80  100
2   59402923  Archangel   Michael   99   80   60   94   98   73   97   50
3   59545279      Astor      John   93   88   97  100   55   96   86   60
4   59687635     Attach      Zach   69   75   61   65   91   89   82   55
5   59829991       Bake      Jake   56    0   77   78    0   79    0   10

In [24]: df.filter(regex='HW').sum(axis=1)
Out[24]:
0    648
1    595
2    601
3    615
4    532
5    290
dtype: int64

约翰的解决方案-使用测向滤波器()-更优雅,但你也可以考虑列表理解。。。在

df[[x for x in df.columns if 'HW' in x]].sum(axis=1)

相关问题 更多 >