2015-09-24 3 views
1

У меня есть блок данных с столбцом, имеющим множество значений NaN. Мне нужно обновить эти значения другими значениями столбца, когда NaN находится в столбце.заполнение колонки NaN другим содержимым столбца в dataframe pandas

One Two 
0 10 21 

1 11 NaN 

2 12 25 

Я хочу, чтобы результат, как этот

One Two 

0 10 21 

1 11 **11** 

2 12 25 

Пожалуйста, помогите мне для synthaxe нарезки в колонке два, и есть обнаружение Nafill, чтобы скопировать значение из одного столбца.

Это код, чтобы создать 1rst матрицу:

df = pd.DataFrame({'One' : [10, 11, 12], 'Two' : [21, np.NAN, 25]}) 
+0

Спасибо, очень много для всех, чтобы дать мне 3 метода, чтобы сделать изменения наилучшим образом. Замечательно. –

+0

Привет всем, к моменту ожидания ответа я сделал этот код, может быть, он может кому-то помочь: 'df ['Two']. Где (df ['Two']. Notnull(), df ['One']) '. Этот код является надежным перед NaN, импортированным из csv или Excel. –

ответ

3

Вы можете использовать fillna с помощью этой колонки:

In [4]: df['Two'].fillna(df['One']) 
Out[4]: 
0 21 
1 11 
2 25 
Name: Two, dtype: float64 

так на самом деле изменить столбец: df['Two'] = df['Two'].fillna(df['One'])

+0

спасибо, этот ответ работает отлично для моей более сложной вкладки. –

2
df['TWO'].mask(df['TWO'].isnull(), df['ONE'], in_place=True) 
+0

Благодарим вас за ответ. Чтобы быть более точным, я внес некоторые изменения в предложение: 'df ['Two']. Mask (df ['Two']. Isnull(), df ['One'], inplace = True)' –

Смежные вопросы