gpt4 book ai didi

python - 两个不同数据帧(dfs)中单词之间的字符串文字匹配并生成一个新的数据帧

转载 作者:行者123 更新时间:2023-12-05 01:03:34 25 4
gpt4 key购买 nike

我有两个数据框 df1 和 df2

df1 =

<头>
大学 学校 学生名字 姓氏 昵称
AAA 法律 约翰 麦肯齐 史蒂夫
BBB 商业 史蒂夫 萨凡纳 JO
CCC 工程 标记 正义 免费
DDD 艺术 斯图尔特
EEE 生命科学 亚当 约翰逊

120 行 X 5 列

df2 =

<头>
声明
斯图尔特昨晚头疼,是因为……
Rah 基本上找到了一个新认识的 friend ,这导致了……
杰罗姆买了一 block 全新的 watch ,它是…………。
发现亚当一生都在发冷……
萨凡纳是一个如此常见的名字……..

3000 行 X1 列

AIM是形成df3

匹配字符串文字并遍历 "Student first name"、 "Student last name"、 "Student nick name"列中的每个单元格以生成下表

Df3 =

<头>
声明 匹配 大学 学校
斯图尔特昨晚头疼,是因为…… 斯图尔特 DDD 艺术
Rah 基本上找到了一个新找到的 friend ,导致 DDD 艺术
杰罗姆买了一 block 全新的 watch ,它是…………。 不适用 不适用 不适用
发现亚当一生都在发冷…… 亚当 EEE 生命科学
萨凡纳是一个如此常见的名字…….. 萨凡纳 BBB 商业

3000 行 X 4 列

最佳答案

您可以meltmerge :

import re

df1_melt = df1.melt(['University', 'School'], value_name='Match')

regex = '|'.join(map(re.escape, df1_melt['Match']))

out = df2.join(
df1_melt[['Match', 'University', 'School']]
.merge(df2['Statement']
.str.extract(f'({regex})', expand=False)
.rename('Match'),
how='right', on='Match'
)
)

输出:

                                                  Statement     Match University        School
0 Stuart had a headache last nigh which was due to the Stuart DDD Arts
1 Rah basically found a new found friend which lead to the Rah DDD Arts
2 Gerome got a brand new watch which was NaN NaN NaN
3 Adam was found chilling all through out his life Adam EEE Life science
4 Savannah is such a common name that Savannah BBB Business

关于python - 两个不同数据帧(dfs)中单词之间的字符串文字匹配并生成一个新的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74091764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com