Почему считается, что заменимое поведениеlate_first () при подстановке значений из одного столбца в другой столбец в одном и том же DataFrame? - PullRequest
0 голосов
/ 06 ноября 2018

Я новичок в stackoverflow.

Я заметил это поведение панд Объединение_first () и просто хотел бы понять, почему. Когда у меня есть следующий фрейм данных,

df = pd.DataFrame({'A':[6,'',7,''], 'B':[1, 3, 5, 3]})
df['A'].combine_first(df['B'])
Out[1]: 
0    6
1     
2    7
3     
Name: A, dtype: object

Принимая во внимание, что инициализация с np.nan вместо '' дает ожидаемое поведение comb_first ()

df = pd.DataFrame({'A':[6,np.nan,7,np.nan], 'B':[1, 3, 5, 3]})
df['A'].combine_first(df['B'])
Out[2]: 
0    6.0
1    3.0
2    7.0
3    3.0
Name: A, dtype: float64

А также замена '' на np.nan и последующее применение комбинирование_first (), похоже, тоже не работает.

df = pd.DataFrame({'A':[6,'',7,''], 'B':[1, 3, 5, 3]})
df.replace('', np.nan)
df['A'].combine_first(df['B'])
Out[3]: 
0    6
1     
2    7
3     
Name: A, dtype: object

Я хотел бы понять, почему это происходит, прежде чем использовать альтернативный метод для этой цели.

1 Ответ

0 голосов
/ 06 ноября 2018

Это, казалось, было довольно очевидно для людей здесь. Но спасибо за размещение комментариев!

Моя ошибка в 3-м кадре данных, который я разместил, на что указывает @ W-B

df = pd.DataFrame({'A':[6,'',7,''], 'B':[1, 3, 5, 3]})
df = df.replace('', np.nan)
df['A'].combine_first(df['B'])

Также, как указал @ALollz, df ['A'] содержит пустые строки '' не являются нулевыми значениями. Это звучит просто в заднем плане. Но я не мог понять это раньше!

Спасибо вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...