pandas.DataFrame.merge with None(NaN)
我需要加入包含None/Nan的字段。但是熊猫背叛了这一点,这正常吗?(模拟相交,需要保留第一个数据帧的索引) 但是pandas.DataFrame.merge with None(NaN),pandas,merge,Pandas,Merge,我需要加入包含None/Nan的字段。但是熊猫背叛了这一点,这正常吗?(模拟相交,需要保留第一个数据帧的索引) 但是 如何加入None?请说明您的预期结果。对不起,添加了代码)嗯,似乎a.merge(b,on='a')或多或少提供了您想要的。不,我需要保留索引a。结果也不一样。但是:a=pd.DataFrame([[None,1],'a',2]],index=[10,11],columns=[a','b'])b=pd.DataFrame([[None,1],'a',2]],columns=[c'
如何加入None?请说明您的预期结果。对不起,添加了代码)嗯,似乎
a.merge(b,on='a')
或多或少提供了您想要的。不,我需要保留索引a。结果也不一样。但是:a=pd.DataFrame([[None,1],'a',2]],index=[10,11],columns=[a','b'])b=pd.DataFrame([[None,1],'a',2]],columns=[c','d'])print(a.merge(b,on=[a','b'])a b#0 None 1#1#a#2
然后您可以使用连接a.set\u('a')index('a','a')。连接(b.set='rsu')
此外,我发现很难想象如何从输入中获得合并结果。我在这里猜测。请指出您的预期结果。对不起,添加了代码)嗯,似乎a.merge(b,on='a')
或多或少给出了您想要的。不,我需要保留索引a。结果也不一样。但是:a=pd.DataFrame([[None,1],'a',2]],index=[10,11],columns=[a','b'])b=pd.DataFrame([[None,1],'a',2]],columns=[c','d'])print(a.merge(b,on=[a','b'])a b#0 None 1#1#a#2
然后您可以使用连接a.set\u('a')index('a','a')。连接(b.set='rsu')
此外,我发现很难想象如何从输入中获得合并结果。我在猜。
a = pandas.DataFrame([[None, 1], [1, 2]], index=[10, 11], columns=['a', 'b'])
b = pandas.DataFrame([[None, 2], [1, 2]], columns=['c', 'd'])
a.merge(
right=b.drop_duplicates().set_index(b.columns.to_list()),
how='inner',
left_on=a.columns.to_list(),
right_index=True)
# a b
# 11 1.0 2
# 11 1.0 2 # Where does this row come from ???
#
# While i was expecting just:
# a b
# 11 1.0 2
a = pandas.DataFrame([[None, 1], [1, 2]], index=[10, 11], columns=['a', 'b'])
b = pandas.DataFrame([[None, 1], [1, 2]], columns=['c', 'd'])
a.merge(
right=b.drop_duplicates().set_index(b.columns.to_list()),
how='inner',
left_on=a.columns.to_list(),
right_index=True)
# a b
# 11 1.0 2
# Where is the row [None, 1] ???
#
# While i was expecting:
# a b
# 10 NaN 1
# 11 1.0 2