[英]Merge two python pandas data frames of different length but keep all rows in output data frame
[英]python/Pandas merge two data frames and return on the rows containing NaN
是否可以使用对df,df1和df2的合并,仅返回df2中Nan的行? 一个例子:
import pandas as pd
import numpy as np
data = {'X1': ['A', 'B', 'C', 'D', 'E'],
'X2': ['meow', 'bark', 'moo', 'squeak', 'cheep']}
data2 = {'X1': ['A', 'B', 'F', 'D', 'E'],
'X3': ['cat', 'dog', 'frog', 'mouse', 'chick']}
#df = pd.DataFrame(data, columns = ['name', 'age', 'preTestScore',
'postTestScore'])
df = pd.DataFrame(data)
df2 = pd.DataFrame(data2)
pd.merge(df, df2, how ='left', on = 'X1')
这返回
X1 X2 X3
A meow cat
B bark dog
C moo NaN
D squeak mouse
E cheep chick
我想要一个看起来像这样的结果:
X1 X2 X3
C moo NaN
我已经尝试过所有可以想到的合并组合,但是我无法理解。 我知道我可以通过对合并的df进行很多操作来实现结果,但是我希望有一个简单有效的答案
只需使用isnull
和any
与你的结果对其进行过滤
s=pd.merge(df, df2, how ='left', on = 'X1')
s[s.isnull().any(1)]
Out[185]:
X1 X2 X3
2 C moo NaN
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.