Skip to main content
 首页 » 编程设计

python之如何根据列前缀拆分 Pandas 数据框

2025年05月04日35qlqwjy

我有一个从 csv 导入的数据框。它是这样的:

df 
A.1  B.1  A.2  B.2 
1    1    1    1 
2    2    2    2 

我的问题是,将其转换为仅由 A 和 B 组成的单独数据帧的有效方法是什么

df_a 
A.1  A.2 
1    1 
2    2 
 
df_b 
B.1  B.2 
1    1 
2    2 

就列名而言,我并不挑剔,将它们剥离为 1 和 2 等就好了,但还没有找到一个好的方法来做到这一点。我也愿意接受其他/更好的方法来完成我正在尝试做的事情,以防这对知识渊博的人来说没有意义。谢谢!

请您参考如下方法:

你可以使用 df.filter使用正则表达式模式:

df_a, df_B = df.filter(regex=r'^A'), df.filter(regex=r'^B') 

或

df_a, df_B = df.filter(like='A'), df.filter(like='B') 

请注意,如果您使用 like='A',则将选择名称​​包含 'A' 的所有列。如果您使用 regex=r'^A',则只会选择名称以 A 开头的列。


In [7]: df 
Out[7]:  
   A.1  B.1  A.2  B.2 
0    1    1    1    1 
1    2    2    2    2 
 
In [8]: df_a, df_B = df.filter(regex=r'^A'), df.filter(regex=r'^B') 
 
In [9]: df_a 
Out[9]:  
   A.1  A.2 
0    1    1 
1    2    2 
 
In [10]: df_B 
Out[10]:  
   B.1  B.2 
0    1    1 
1    2    2