Python 熊猫:如何选择具有特定单词的行

Python 熊猫:如何选择具有特定单词的行,python,regex,string,pandas,Python,Regex,String,Pandas,如何仅显示文本中包含“AV”等词的行,例如“AV Snow”或“AV(Some)”或“Me AV” # Select Structural status = 'AVAILABLE' or like *AV* value_list = ['AVAILABLE', '[AV]'] “[AV]”似乎不正确 # Grab DataFrame rows where column has certain values new_df = df[df.STRUCTURALSTATUS.isin(value_l

如何仅显示文本中包含“AV”等词的行,例如“AV Snow”或“AV(Some)”或“Me AV”

# Select Structural status = 'AVAILABLE' or like *AV*
value_list = ['AVAILABLE', '[AV]']
“[AV]”似乎不正确

# Grab DataFrame rows where column has certain values
new_df = df[df.STRUCTURALSTATUS.isin(value_list)]
new_df.shape

如果您想要使用正则表达式模式,您可能想要在您的系列中使用来过滤数据帧。然后,您可以在结果上应用带有isin函数的列表

例如:

df[df.STRUCTURALSTATUS.str.contains('[AV]')]
这里有一个方法

解决方案

import pandas as pd

df = pd.DataFrame({'A': ['AV', 'AV Snow', 'Test', 'AV (Some)',
                         'Nothing', 'Me AV', 'Available', 'NA']})

df = df[df['A'].str.contains('AV', regex=False, case=False, na=False)]
结果

           A
0         AV
1    AV Snow
3  AV (Some)
5      Me AV
6  Available
解释

import pandas as pd

df = pd.DataFrame({'A': ['AV', 'AV Snow', 'Test', 'AV (Some)',
                         'Nothing', 'Me AV', 'Available', 'NA']})

df = df[df['A'].str.contains('AV', regex=False, case=False, na=False)]
  • regex=False
    禁用regex,因为您的特定任务不需要它
  • case=False
    使搜索不区分大小写
  • na=False
    表示如果序列中存在异常类型,例如非字符串,则不会看到错误

您好,我有一个错误:AttributeError:'Series'对象没有属性'contains'抱歉,在ContainsDoesn似乎不起作用之前,我忘记了str,其他单词也出现了…未筛选出hi,但有一个单词“AV Default”我不想选择。那么,我如何选择包含“AV”但不包含“AV默认值”您能解释为什么不包含AV默认值吗?这是唯一一个你不想要的AV吗?你可以使用
df=df[df['A'].str.contains('AV',regex=False,case=False,na=False)&(df['A']!='AV Default')]
.str.contains('AV',regex=False,case=False,na=False)&~(df['A'].str.contains('AV-Default',regex=False,case=False,na=False)