我想检查 Pandas DataFrame 列是否包含 List 对象中的关键字元素。如果列包含来自 List 对象的关键字,那么我想在 DataFrame 本身的新列中填充该 List 元素。
L = ['abc','pqr','xyz']
如果 DataFrame 是
Col1 Col2
'abc xyz'
'pqr lmn'
我想将 DF 与 L 进行比较,并且当“abc xyz”包含 L 的元素(即“abc”)时,我想在 Col2 中填充“abc”。
你能帮我实现这个目标吗?
提前致谢
答案 0 :(得分:1)
这对你有用吗?
import pandas as pd
L = ['abc','pqr','xyz']
df = pd.DataFrame(['abc xyz', 'pqr lmn'], columns=['Col1'])
df['Col2'] = df['Col1'].str.findall('|'.join(L)).apply(lambda x: ' '.join(x))
给出:
>>> df
Col1 Col2
0 abc xyz abc xyz
1 pqr lmn pqr
[编辑]
如果您只想要第一个匹配的关键字:
df['Col2'] = df['Col1'].str.findall('|'.join(L)).str[0]
给出:
>>> df
Col1 Col2
0 abc xyz abc
1 pqr lmn pqr