是否可以使用merge to 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进行大量操作来实现结果,但我希望有一个简单有效的答案
答案 0 :(得分:1)
只需将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