使用Python Pandas使用通配符名称搜索所有列的总和

jbs*_*ssm 35 python wildcard pandas

我在python pandas中有一个数据框,其中有几列来自CSV文件.

例如,data =:

Day P1S1 P1S2 P1S3 P2S1 P2S2 P2S3
1   1    2    2    3    1    2
2   2    2    3    5    4    2
Run Code Online (Sandbox Code Playgroud)

我需要的是得到名称以P1开头的所有列的总和......类似于带有通配符的P1*.

像下面这样的错误:

P1Sum =数据["P1*"]

有没有为什么要用熊猫做这个?

jbs*_*ssm 53

我找到了答案.

使用数据,来自问题的数据框:

from pandas import *

P1Channels = data.filter(regex="P1")
P1Sum = P1Channels.sum(axis=1)
Run Code Online (Sandbox Code Playgroud)


Ant*_*nko 5

列上的列表推导式允许在if条件中使用更多过滤器:

In [1]: df = pd.DataFrame(np.arange(15).reshape(5, 3), columns=['P1S1', 'P1S2', 'P2S1'])

In [2]: df
Out[2]: 
   P1S1  P1S2  P2S1
0     0     1     2
1     3     4     5
2     6     7     8
3     9    10    11
4    12    13    14

In [3]: df.loc[:, [x for x in df.columns if x.startswith('P1')]].sum(axis=1)
Out[3]: 
0     1
1     7
2    13
3    19
4    25
dtype: int64
Run Code Online (Sandbox Code Playgroud)