我有一个包含文本的数据框列,我想创建一个新列,其中包含有名称的句子,但不包含其他句子。希望最终的结果是这样的:
我能够从名字列表中识别出包含名字的单元格,但我在提取包含名字的句子的部分遇到了问题。
import re
import pandas as pd
import numpy as np
df = pd.DataFrame({
'ColumnA': ['Lorum ipsum. This is approved. Lorum Ipsum.', 'Lorum Ipsum. Send the contract to May. Lorum Ipsum.', 'Junk Mail from Brian.']
})
last_names_list = ['May','Brian']
df['last_names'] = ''
for x in last_names_list:
df['last_names'] = np.where(df['ColumnA'].str.contains(x),x,df['last_names'])
def f(x,y):
return re.findall(fr'[^.]{x}[^.]',y)
df['col_3'] = df.apply(lambda x: f(x['last_names'],x['ColumnA']), axis=1)
print(df)
当我打印数据帧时,每一行都有一个名称
df[col_3']
生成一个空列表。
任何帮助感谢。