按列名子集数据框

时间:2017-10-19 18:59:51

标签: python subset

我的数据框的列包含“pre_1,pre_2,pre_3等......”。我还有标记为“post1,post2,post3 ......等”的帖子数据。

有没有办法通过选择带有'pre'一词的所有列来在Python中切片数据?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以filter使用likeregex关键字来匹配列名称中的模式:

df = pd.DataFrame({
    'pre_1': [1,2],
    'pre_2': [3,4],
    'pre_3': [5,6],
    'post1': [7,8],
    'post2': [9,10],
    'post3': [11,12]
})

df
#post1  post2   post3   pre_1   pre_2   pre_3
#0   7      9      11       1       3       5
#1   8     10      12       2       4       6

要选择包含模式的列,请使用like关键字:

df.filter(like='pre')

#pre_1  pre_2   pre_3
#0   1      3       5
#1   2      4       6

或者您可以使用正则表达式,以下将选择以^开头的列(pre):

df.filter(regex='^pre')

#pre_1  pre_2   pre_3
#0   1      3       5
#1   2      4       6