在python中使用交叉函数合并两列

2024-06-16 13:42:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我期待着合并两列使用交叉函数,我需要使用以后的进一步分析

输入数据

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\u编号与标识\u编号合并

我目前使用的代码:

cross = df1[['id_number']].merge(df2[['identity_no']], how='cross')

但是得到错误:

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

输出我需要的内容:

#    id_number identity_no
# 0    IN2231D      IN2231
# 1    IN2231D     UK654IN
# 2    IN2231D      SL1432
# ...
# 17   NG5678J     UK654IN
# 18   NG5678J      SL1432
# 19   NG5678J     LK0678G

请建议


Tags: nonameidnumberoncompanyidentitypvt
1条回答
网友
1楼 · 发布于 2024-06-16 13:42:37

^{}

这是在pd.__version__ == '1.2.0'中引入的一项功能,因此,如果您有较旧版本的pandas,它将无法工作。如果由于某种原因无法升级,则可以使用一个helper列来完成相同的升级,该列对于随后删除的两个数据帧都是相同的常量

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

相关问题 更多 >