我在熊猫数据框中有一列是字符串,例如:
df['hello'].iloc[0] = '['hi','how','are','you']'
我只想保留带有“你”这个词的行,但在“如何”之后。 类似这样的条件:
'you' in ['hi','how','are','you'].split('how')[1]
> 保持行
我试过了:
filtered = df[df['hello'].map(ast.literal_eval).apply(lambda x: 'you' in x)]
但它只和你一起过滤行,而不是在“如何”之后。 如何添加此条件?
答案 0 :(得分:0)
您可以使用 .str.contains
中的正则表达式检查它,匹配字符串,其中 'how'
后跟任何字符,然后后跟 'you'
:
df = pd.DataFrame({'hello': [
"['hi','how','are','you']",
"['you','are','how']",
]})
filtered = df.loc[df['hello'].str.contains("'how'.*'you'")]
filtered
输出:
hello
0 ['hi','how','are','you']