楼主: 我是小趴菜
513 0

[数据挖掘新闻] Python Pandas合并关键字/句子 [推广有奖]

  • 0关注
  • 4粉丝

教授

35%

还不是VIP/贵宾

-

威望
0
论坛币
29650 个
通用积分
380.5350
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
7150 点
帖子
670
精华
0
在线时间
37 小时
注册时间
2022-8-30
最后登录
2023-4-4

楼主
我是小趴菜 发表于 2022-10-12 14:07:39 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

我有两个数据帧,我想使用某种VLOOKUP函数,它将句子与特定关键字匹配。在下面的例子中,(df​​1)3e句子应该与banana(df2)匹配,因为它在句子中包含香蕉。


import pandas as pd

df1 = pd.DataFrame({'Text': ['Some text 1', 'Some text 2','The monkey eats a banana','Some text 4']})

df2 = pd.DataFrame({'Keyword': ['apple', 'banana', 'chicken'], 'Type': ['fruit', 'fruit', 'meat']})


df1


Text

0 Some text 1

1 Some text 2

2 The monkey eats a banana

3 Some text 4


df2


Keyword Type

0 apple fruit

1 banana fruit

2 chicken meat

因此,最好的结果是:


Text Type

0 Some text 1 -

1 Some text 2 -

2 The monkey eats a banana fruit

3 Some text 4

-

解决办法:

使用extract的关键字,并且map图中提取到“关键字”到“类型”。


import re


p = rf"({'|'.join(map(re.escape, df2['Keyword']))})"

# p = '(' + '|'.join(map(re.escape, df2['Keyword'])) + ')'


df1['Type'] = (

df1['Text'].str.extract(p, expand=False).map(df2.set_index('Keyword')['Type']))

df1


Text Type

0 Some text 1 NaN

1 Some text 2 NaN

2 The monkey eats a banana fruit

3 Some text 4 NaN




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:pandas python panda Das 关键字

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 23:26