Python 熊猫:如何选择具有特定单词的行
如何仅显示文本中包含“AV”等词的行,例如“AV Snow”或“AV(Some)”或“Me AV”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
# 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,因为您的特定任务不需要它regex=False
使搜索不区分大小写case=False
表示如果序列中存在异常类型,例如非字符串,则不会看到错误na=False
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)