簡體   English   中英

python / Pandas合並兩個數據框並返回包含NaN的行

[英]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進行很多操作來實現結果,但是我希望有一個簡單有效的答案

只需使用isnullany與你的結果對其進行過濾

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM