2016-08-29 34 views
1

Ich möchte N.A.-Werte in einer bestimmten Spalte füllen, wenn eine Bedingung in einer anderen Spalte erfüllt ist, nur diese einzelne Klasse der N.A.-Werte durch einen impued/Wiederbeschaffungswert zu ersetzen.Pandas füllen N.A. für spezifische Spalte

z. Ich möchte Folgendes tun: if column1 = 'value1' AND column2 = N.A fillna_in_column2 with value 'replacementvalue'

Wie erreiche ich das in Pandas?

Der Versuch, dies über dataframe[dataframe['firstColumn'] == 'value1'].fillna({'column2':'replacementValue'} zu tun, funktioniert nicht, da die Länge der gesamten Datensätze geändert wird. Bis jetzt konnte ich keine Inplace-Modifikation für die Arbeit bekommen.

Antwort

2
df.loc[(df['col1']==val1) & (df['col2'].isnull()), 'col2'] = replacement_value 
0

Sie können dies versuchen:

cond1 = df['column1'] == value1 
cond2 = np.isnan(df['column2']) 

df['column2'][cond1 & cond2] = replacement_value 
+1

thx, die funktioniert. –

Verwandte Themen