2017-02-14 3 views
-2

Ich füge zwei Datenrahmen in Pandas zusammen. Wenn Felder beitreten, die "NA" enthalten, schließen Pandas diese Datensätze automatisch aus. Wie kann ich die Datensätze mit dem Wert 'NA' behalten?Wie mit 'NA' in Pandas arbeiten?

+0

[mit fehlenden Daten Arbeits] (http://pandas.pydata.org/pandas- docs/stable/missing_data.html) – MaxU

+0

Ich teste es und für mich funktioniert es. Können Sie einige Beispieldaten hinzufügen? Was ist deine Pandas Version? – jezrael

+2

Ohne Rohdaten, Code, Ihre Versuche und Fehler für andere zu versuchen und zu reproduzieren, ist dies nur eine spekulative Frage – EdChum

Antwort

0

Bei mir funktioniert es schön:

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:

Es scheint, gibt es ein weiteres Problem - Ihre NA Werte werden in NaN umgewandelt.

Sie können pandas.read_excel verwenden, gibt es möglich, festzulegen, welche Werte zu NaN mit Parameter umgewandelt werden keep_default_na und na_values:

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

Meine Daten enthalten 'NA', die aus einer Excel-Datei importiert wird. In Ihrem Beispiel verwenden Sie NaN. Kannst du mit 'NA' nachsehen? – Suman

+0

Probieren Sie es aus, es funktioniert auch. – jezrael

+0

Bitte überprüfen Sie die letzte Änderung. – jezrael