首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫数据栏中相似词的显示方法

熊猫数据栏中相似词的显示方法
EN

Stack Overflow用户
提问于 2022-04-12 06:01:55
回答 2查看 49关注 0票数 1

这是我的数据

代码语言:javascript
复制
Id   Column_1               Column_2
1    United States          United Tractor
2    Love of Fair           Tales of Grim
3    Hotel Marriot Jakarta  Marriot Hotel Jakarta 

这是我的预期输出

代码语言:javascript
复制
Id   Column_1               Column_2               Word
1    United States          United Tractor         united
2    Love of Fair           Tales of Grim          of
3    Hotel Marriot Jakarta  Marriot Hotel Jakarta  hotel marriot

数据:

代码语言:javascript
复制
{'Id': [1, 2, 3],
 'Column_1': ['United States', 'Love of Fair', 'Hotel Marriot Jakarta'],
 'Column_2': ['United Tractor', 'Tales of Grim', 'Marriot Hotel Jakarta']}
EN

回答 2

Stack Overflow用户

发布于 2022-04-12 06:05:40

一种选择是在列表理解中使用set.intersection

代码语言:javascript
复制
df['Word'] = [' '.join(set(x.lower().split()) & set(y.lower().split())) for x,y in zip(df['Column_1'], df['Column_2'])]

另一种选择是对列进行stack;然后在执行set.intersection的lambda上使用groupby.apply

代码语言:javascript
复制
df['Word'] = (df[['Column_1', 'Column_2']].stack().str.lower().str.split()
              .groupby(level=0).apply(lambda x: ' '.join(set(x.iat[0]) & set(x.iat[1]))))

输出:

代码语言:javascript
复制
   Id               Column_1                Column_2                   Word
0   1          United States          United Tractor                 united
1   2           Love of Fair           Tales of Grim                     of
2   3  Hotel Marriot Jakarta  Marriot Hotel Jakarta   hotel marriot jakarta
票数 3
EN

Stack Overflow用户

发布于 2022-04-12 07:00:31

非常相似但有点不同的解决方案:

代码语言:javascript
复制
df['Word'] = (df[['Column_1', 'Column_2']].
              applymap(lambda x: set(x.lower().split())).
              apply(lambda x: ' '.join(x.Column_1 & x.Column_2),1))
>>> df
'''
   Id               Column_1               Column_2                   Word
0   1          United States         United Tractor                 united
1   2           Love of Fair          Tales of Grim                     of
2   3  Hotel Marriot Jakarta  Marriot Hotel Jakarta  hotel marriot jakarta
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71837782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档