python - 我试图获取两列中两个字符串之间的距离并将结果放在下一个第三列,但为什么它对所有人产生相同的结果?
问题描述
这是我的数据框:
RIGHT_SHORTNAME Item_Name
0 S/BAG PKT SEMBAKO S/BAG PKT SEMBAKO
1 ORAL B 123 SOFT2S ORAL B 123 SOFT2S
2 ORAL B 123 SOFT2S ORAL B 123 SOFT2S
3 CINDERELLA COTBUD CINDERELLA COTBUD
4 PROCHIZ 10S 170GR PROCHIZ 10S 170GR
... ... ...
97163 TT MAX CHO 12X17GR TT MAX CHO 12X17GR
97164 ICELAND VOD 350ML ICELAND VOD 350ML
97165 SUNKIST GUAVA 1 LT SUNKIST GUAVA 1 LT
97166 COSM FAN 12DAR COSM FAN 12DAR
97167 BATHSALT MINERAL C BATHSALT MINERAL C
我想用这段代码添加列名“距离”:
def distance(a, b):
_, z, _=process.extractOne(str(a),[str(b)])
return z
df['distance']=distance(df['RIGHT_SHORTNAME'],df['Item_Name'])
它产生了这个:
RIGHT_SHORTNAME Item_Name distance
0 S/BAG PKT SEMBAKO S/BAG PKT SEMBAKO 98.595506
1 ORAL B 123 SOFT2S ORAL B 123 SOFT2S 98.595506
2 ORAL B 123 SOFT2S ORAL B 123 SOFT2S 98.595506
3 CINDERELLA COTBUD CINDERELLA COTBUD 98.595506
4 PROCHIZ 10S 170GR PROCHIZ 10S 170GR 98.595506
... ... ... ...
97163 TT MAX CHO 12X17GR TT MAX CHO 12X17GR 98.595506
97164 ICELAND VOD 350ML ICELAND VOD 350ML 98.595506
97165 SUNKIST GUAVA 1 LT SUNKIST GUAVA 1 LT 98.595506
97166 COSM FAN 12DAR COSM FAN 12DAR 98.595506
97167 BATHSALT MINERAL C BATHSALT MINERAL C 98.595506
当我使用 df['distance'].describe() 检查时,结果 df['distance'] 完全一样。有谁能够帮我?
解决方案
这是因为您的distance
方法仅返回一个值,并且您将该值分配给数据框中的新列distance
。因此,该distance
列具有distance
方法返回的所有相同值。
process.extractOne(query, choices)
接受一个字符串和一个列表,我猜你想遵循语法
def distance(x):
_, z = process.extractOne(x, df['Item_Name'].tolist())
return z
df['distance'] = df['RIGHT_SHORTNAME'].apply(distance)
或者
df['distance'] = df['RIGHT_SHORTNAME'].apply(lambda x: process.extractOne(x, df['Item_Name'].tolist())[1])
推荐阅读
- php - 如果内容中存在 iframe,如何将 iframe / 视频替换为另一个 div?
- postgresql - 将 SQLite 转储迁移到部署在 Kubernetes 上的 PostgreSQL
- python - 如何将 autograph 和 tf.device 与 tf.function 包装类方法一起使用?
- python - 请求 Simpy 资源永远不会成功
- d3.js - 条形图中的自定义时间间隔在条形之间没有间隙
- android-studio - Android Studio 没有为模拟器显示 logcat
- node.js - 如何正确验证nodeJS rest api中的对象ID数组
- r - R中的ggplot2:计算百分比并制作可能是geom_area图的图形
- html - 如何在嵌套的 div 中对齐 h2?
- amazon-web-services - dynamoDB 的项目是否可立即查询?