如何检查DF行中的字符串列表是否包含另一个DF中串联的任何字符串?

2024-05-14 03:50:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列中的DataFrame包含字符串列表,比如这个:

print(df_1.lists)

输出:

^{pr2}$

我还有另一个数据帧,在一个序列中包含以下单词:

print(df_2.check)

输出:

0                   Olszany
1                    Pucków
2                  Baborowa
3                Studzionki
4                     Pytam
5                  Lasowice
etc

我想获取df_1.lists的每一行,并检查列表是否包含df_2.check中的任何单词。如果它包含,那么我想将这些包含的单词赋给df_1.lists中的列。怎么做?在

[编辑]我试过df_1。列表.应用(λx:[列表(设置(df_2。checks.str.提取(r“(”+i+r“)”.dropna().values)),但这太慢了。在


Tags: 数据字符串dataframedf列表check序列单词
1条回答
网友
1楼 · 发布于 2024-05-14 03:50:09

使用嵌套列表理解:

df_1['new'] = [[y for y in x if y in df_2['check'].values] for x in df_1['lists']]

或者为每个值在set和list之间获取intersection

^{pr2}$

集合之间的intersection相似:

s = set(df_2['check'])
df_1['new'] = [list(set(x).intersection(s)) for x in df_1['lists']]

相关问题 更多 >