程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在python中使用交叉函数合并两列 how='cross'大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在python中使用交叉函数合并两列 how='cross'?

开发过程中遇到在python中使用交叉函数合并两列 how='cross'的问题如何解决?下面主要结合日常开发的经验,给出你关于在python中使用交叉函数合并两列 how='cross'的解决方法建议,希望对你解决在python中使用交叉函数合并两列 how='cross'有所启发或帮助;

我希望使用交叉函数合并两列,稍后我需要使用该函数进行进一步分析。

输入数据

@H_262_7@ID_number  company_name        match_acc

IN2231D    AXN pvt Ltd
UK654IN    Aviva Intl Ltd
SL1432H    Ship Incorporations
LK0678G    Oppo Mobiles pvt ltd
NG5678J    Nokia Inc


IDentity_no   Pincode   company_name

 IN2231        110030    AXN pvt Ltd
 UK654IN       897653    Aviva Intl Ltd
 SL1432        07658     Ship Incorporations
 LK0678G       120988    Oppo Mobiles Pvt Ltd

我希望将列 ID_number 与 IDentity_no 合并

我目前使用的代码:

@H_262_7@cross = df1[['ID_number']].merge(df2[['IDentity_no']],how='cross')

但得到错误:

@H_262_7@pandas.errors.MergeError: No common columns to perform merge on. Merge options: left_on=None,right_on=None,left_index=false,right_index=false

输出我需要的:

@H_262_7@#    ID_number IDentity_no
# 0    IN2231D      IN2231
# 1    IN2231D     UK654IN
# 2    IN2231D      SL1432
# ...
# 17   NG5678J     UK654IN
# 18   NG5678J      SL1432
# 19   NG5678J     LK0678G

请提出建议。

解决方法

@H_262_7@how='cross'

这是 @H_262_7@pd.__version__ == '1.2.0' 中引入的一项功能,因此如果您有旧版本的 Pandas,它将无法使用。如果由于某种原因您无法升级,您可以使用辅助列来完成相同的操作,该列与您随后删除的两个 DataFrame 的常量相同。

@H_262_7@import pandas as pd
df1 = pd.DataFrame({'x': [1,2]})
df2 = pd.DataFrame({'y': ['a','b']})

# For versions >=1.2.0
df1.merge(df2,how='cross')
#   x  y
#0  1  a
#1  1  b
#2  2  a
#3  2  b

# For older versions assign a constant you merge on.
df1.assign(t=1).merge(df2.assign(t=1),on='t').drop(columns='t')
#   x  y
#0  1  a
#1  1  b
#2  2  a
#3  2  b

大佬总结

以上是大佬教程为你收集整理的在python中使用交叉函数合并两列 how='cross'全部内容,希望文章能够帮你解决在python中使用交叉函数合并两列 how='cross'所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: