我有一个包含许多列的数据框,但其中有六列名为:people_emotions_anger,people_emotions_joy,people_emotions_surprise end so so。
有没有聪明的方法可以只提取那些带有前缀" people_emotions"?
的列我知道我可以提取每一列,然后将它们合并到新的数据帧中,但是可能有更有效的方法吗?
答案 0 :(得分:2)
来源DF:
In [28]: df
Out[28]:
aaa_1 aaa_2 bbb_1 bbb_2 aaa_3
0 1 2 aaa xxx 10
1 1 2 bbb yyy 11
选项1:
In [29]: df.filter(regex='^aaa')
Out[29]:
aaa_1 aaa_2 aaa_3
0 1 2 10
1 1 2 11
选项2:
In [30]: df.loc[:, df.columns.str.contains('^aaa')]
Out[30]:
aaa_1 aaa_2 aaa_3
0 1 2 10
1 1 2 11
答案 1 :(得分:1)
一种不那么“熊猫式”的方式就是使用列表理解:
{{1}}