Python 按列名对数据帧进行子集设置

Python 按列名对数据帧进行子集设置,python,subset,Python,Subset,我有一个包含“pre_1、pre_2、pre_3等”列的数据框。我还将post数据标记为“post1、post2、post3…等等) 有没有一种方法可以在Python中通过选择所有包含单词“pre”的列来切片数据 谢谢。您可以使用过滤器和like或regex关键字来匹配列名中的模式: df = pd.DataFrame({ 'pre_1': [1,2], 'pre_2': [3,4], 'pre_3': [5,6], 'post1': [7,8], 'po

我有一个包含“pre_1、pre_2、pre_3等”列的数据框。我还将post数据标记为“post1、post2、post3…等等)

有没有一种方法可以在Python中通过选择所有包含单词“pre”的列来切片数据


谢谢。

您可以使用
过滤器
like
regex
关键字来匹配列名中的模式:

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