在两个不同的数据表上执行合并操作?

2024-10-03 00:28:32 发布

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

我有两个给定格式的不同数据表: dataTable1

DataTable2

现在我想要两个合并这个dataTable,其中dataTable1的最后一列(number和string)和dataTable2的第一列(number)具有公共值。我想合并到这个公共值中,并且不希望有任何其他行不在这两个表中。我正在使用熊猫,我的代码是

import numpy as np`
import pandas as pd
sellOrder = pd.read_excel('Europe_SO.xlsx')
purchaseOrder = pd.read_excel('Atlas PO.xlsx')
final = purchaseOrder.merge(sellOrder, left_on = 'EBELN', right_on = 'BSTNK', how='inner', indicator=True)

但我得到的是一张没有价值的空桌子。你知道吗


Tags: importnumberreadstringonas格式xlsx
1条回答
网友
1楼 · 发布于 2024-10-03 00:28:32

我认为问题是列EBELNBSTNK在这两个DataFrames中有不同的dtypes,所以不匹配。你知道吗

检查方式:

print (sellOrder['EBELN'].dtype)
print (purchaseOrder['BSTNK'].dtype)

所以需要将这两个列都转换为int,或者将这两个列都转换为str。你知道吗

sellOrder['EBELN'] = sellOrder['EBELN'].astype(int)
purchaseOrder['BSTNK'] = purchaseOrder['BSTNK'].astype(int)

或:

sellOrder['EBELN'] = sellOrder['EBELN'].astype(str)
purchaseOrder['BSTNK'] = purchaseOrder['BSTNK'].astype(str)

相关问题 更多 >