![](/img/trans.png)
[英]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.