2017-02-14 10 views
-2

私はパンダで2つのデータフレームをマージしています。結合フィールドに 'NA'が含まれている場合、pandasは自動的にそれらのレコードを除外します。値 'NA'を持つレコードをどのように保つことができますか?私にとってパンダで「NA」を扱うには?

+0

は、[不足しているデータの操作](http://pandas.pydata.org/pandas- docs/stable/missing_data.html) – MaxU

+0

私はそれをテストし、私にとってはうまくいきます。サンプルデータを追加できますか?あなたのパンダのバージョンは何ですか? – jezrael

+2

他の人が試して再現しようとする生データ、コード、試行、エラーがない限り、これは単なる推測的な質問です@ – EdChum

答えて

0

それは素敵な作品:

df1 = pd.DataFrame({'A':[np.nan,2,1], 
        'B':[5,7,8]}) 

print (df1) 
    A B 
0 NaN 5 
1 2.0 7 
2 1.0 8 

df2 = pd.DataFrame({'A':[np.nan,2,3], 
        'C':[4,5,6]}) 

print (df2) 
    A C 
0 NaN 4 
1 2.0 5 
2 3.0 6 

print (pd.merge(df1, df2, on=['A'])) 
    A B C 
0 NaN 5 4 
1 2.0 7 5 

print (pd.__version__) 
0.19.2 

EDIT:

別の問題があるようです - あなたのNA値がNaNに変換されます。

あなたは値がパラメータkeep_default_nana_valuesNaNに変換されているかを定義可能であるが、pandas.read_excelを使用することができます。

df = pd.read_excel('test.xlsx',keep_default_na=False,na_values=['NaN']) 
print (df) 
     a b 
0 NaN NA 
1 20.0 40 
+0

私のデータには、Excelファイルからインポートされている「NA」が含まれています。あなたの例ではNaNを使用しています。 「NA」で確認できますか? – Suman

+0

それを試してください、それはまた動作します。 – jezrael

+0

最後に編集を確認してください。 – jezrael

関連する問題