Учитывая следующее DataFrame
:
A B
0 -10.0 NaN
1 NaN 20.0
2 -30.0 NaN
Я хочу объединить столбцы A
и B
, заполняя ячейки NaN
в столбце A
значениями из столбца B
, а затем отбрасывая столбец B
, в результате чего получается DataFrame
это:
A
0 -10.0
1 20.0
2 -30.0
Мне удалось решить эту проблему с помощью функции iterrows()
.
Полный пример кода:
import numpy as np
import pandas as pd
example_data = [[-10, np.NaN], [np.NaN, 20], [-30, np.NaN]]
example_df = pd.DataFrame(example_data, columns = ['A', 'B'])
for index, row in example_df.iterrows():
if pd.isnull(row['A']):
row['A'] = row['B']
example_df = example_df.drop(columns = ['B'])
example_df
Кажется, это работает нормально, но я нахожу эту информацию в документации для iterrows()
:
Вы не должны никогда изменять то, что вы повторяете.
Так что, похоже, я делаю это неправильно.
Какой будет лучший / рекомендуемый подход для достижения того же результата?