熊猫合并意外结果

时间:2019-04-21 14:22:35

标签: python pandas

我有两个用熊猫创建的数据框。我不知道如何使用公共列以特定格式合并两个数据框。

我用过

pd.merge(dataframe1,dataframe2,on='A',how='outer')

但这不会产生预期的结果。

预期结果:

dataframe 1:        dataframe 2:       Result:

A B                 A                   A B
0 1                 0                   0 1
1 0                 1                   1 0
2 0                 2                   2 0
4 1                 3                   3 Nan
                    5                   4 1
                                        5 Nan

获得的结果:

dataframe 1:        dataframe 2:       Result:

A B                 A                   A B
0 1                 0                   0 1
1 0                 1                   1 0
2 0                 2                   2 0
4 1                 3                   3 1
                    5                   4 Nan
                                        5 Nan

2 个答案:

答案 0 :(得分:1)

您的代码对我有用,只是我以不同的方式定义了数据框

import pandas as pd

# initialize list of lists
data1 = [[0, 1], [1, 0], [2, 0], [4,1]]
df1 = pd.DataFrame(data1, columns = ['A', 'B'])
data2 = [[0], [1], [2], [3], [5]]
df2 = pd.DataFrame(data2, columns = ['A'])
print(pd.merge(df1,df2,how='outer', on='A'))
#   A    B
#0  0  1.0
#1  1  0.0
#2  2  0.0
#3  4  1.0
#4  3  NaN
#5  5  NaN

答案 1 :(得分:0)

始终检查数据。使用者向我显示没有空格,但是发送了一个带有空格的文件(他发送了不带保存的版本),并向其中添加了.str.strip()数据元素,一切开始正常工作。

从不信任任何输入。始终验证。