有没有办法使用文本匹配或正则表达式选择列的子集?
在R中它会是这样的:
attach(iris) #Load the 'Stairway to Heaven' of R's built-in data sets
iris[grep(names(iris),pattern="Length")] #Prints only columns containing the word "Length"
答案 0 :(得分:5)
您可以使用filter
方法(使用axis=1
过滤列名称)。这个功能有不同的可能性:
相当于if 'Length' in col
:
df.filter(like='Length', axis=1)
使用正则表达式(但是,它使用的是re.search
而不是re.match
,因此您可以调整正则表达式):
df.filter(regex=r'\.Length$', axis=1)
答案 1 :(得分:0)
使用Python的in
语句,它可以这样工作:
#Assuming iris is already loaded as a df called 'iris' and has a proper header
iris = iris[[col for col in iris.columns if 'Length' in col]]
print iris.head()
或者,使用正则表达式
import re
iris = iris[[col for col in iris.columns if re.match(r'\.Length$',col)]]
print iris.head()
第一个会跑得更快,但第二个会更准确。