【发布时间】:2021-11-15 20:13:38
【问题描述】:
我有两个数据框,如下所示,但行数更多:
data = {'First': [['First', 'value'],['second','value'],['third','value','is'],['fourth','value','is']],
'Second': [['adj','noun'],['adj','noun'],['adj','noun','verb'],['adj','noun','verb']]}
df = pd.DataFrame (data, columns = ['First','Second'])
data2 = {'example': ['First value is important', 'second value is imprtant too','it us goof to know']}
df2 = pd.DataFrame (data2, columns = ['example'])
我写了一个函数,检查示例列中的第一个单词是否可以在第一个数据帧的第一列中找到,如果为真则返回字符串,如下所示:
def reader():
for l in [l for l in df2.example]:
if df["first"].str.contains(pat=l.split(' ', 1)[0]).any() is True:
return l
但是,我意识到它不起作用,因为 df 中的第一列是字符串列表,所以我进行了以下修改:
def reader():
for l in [l for l in df2.example]:
df['first_unlist'] = [','.join(map(str, l)) for l in df.First]
if df["first_unlist"].str.contains(pat=l.split(' ', 1)[0]).any() is True:
return l
但是,当我运行该函数时,我仍然得到“无”,我无法弄清楚这里出了什么问题。
更新:
我希望函数返回示例列中的前两个字符串,“第一个值很重要”,“第二个值也很重要”
【问题讨论】:
标签: python pandas string dataframe match