两个不同的dataTable上的Pandas Merge Operation?

时间:2017-11-02 07:22:08

标签: python pandas merge

我有两种不同的数据表格式: dataTable1

DataTable2

现在我想要将这个dataTable合并为一个,其中dataTable1的最后一个列(数字和字符串)和dataTable2(number)的第一个Colum具有共同的值。我想合并这个共同的值,并不希望任何其他行在两个表中都不存在。我正在使用熊猫,我的代码是

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)

但我得到没有价值的空桌。

1 个答案:

答案 0 :(得分:1)

我认为问题是EBELN列,而BSTNKdtypes中的DataFrames不同,所以不匹配。

检查:

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)