我在pandas中合并两个数据帧。当加入字段包含' NA'时,pandas会自动排除这些记录。如何保持记录具有值' NA'?
答案 0 :(得分:0)
对我来说它很好用:
df1 = pd.DataFrame({'A':[np.nan,2,1],
'B':[5,7,8]})
print (df1)
A B
0 NaN 5
1 2.0 7
2 1.0 8
df2 = pd.DataFrame({'A':[np.nan,2,3],
'C':[4,5,6]})
print (df2)
A C
0 NaN 4
1 2.0 5
2 3.0 6
print (pd.merge(df1, df2, on=['A']))
A B C
0 NaN 5 4
1 2.0 7 5
print (pd.__version__)
0.19.2
编辑:
似乎还有另一个问题 - 您的NA
值已转换为NaN
。
您可以使用pandas.read_excel
,可以使用参数NaN
和keep_default_na
定义将哪些值转换为na_values
:
df = pd.read_excel('test.xlsx',keep_default_na=False,na_values=['NaN'])
print (df)
a b
0 NaN NA
1 20.0 40