pandas df.fillna - заполнение NaNs после внешнего соединения правильными значениями - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть два кадра данных, которые совместно используют несколько столбцов.
Я пытаюсь:

1) Объединить два кадра данных вместе, то есть добавить столбцы, которые отличаются:

diff = df2[df2.columns.difference(df1.columns)]
merged = pd.merge(df1, diff, how='outer', sort=False, on='ID')

Здесь все работает как положено.

2) Теперь, чтобы заменить значения NaN на значения df2

merged = merged[~merged.index.duplicated(keep='first')]
merged.fillna(value=df2)

И именно здесьЯ получаю:

pandas.core.indexes.base.InvalidIndexError

У меня нет дубликатов, и я не могу найти информацию о том, что может вызвать это.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Решением этой проблемы является использование другого метода - comb_first () таким образом, каждая строка с отсутствующими данными заполняется данными из другого кадра данных, как можно увидеть здесь Объединениевместе значения в столбцах Series или DataFrame

0 голосов
/ 13 декабря 2018

В случае, если количество строк изменяется из-за слияния, fillna иногда вызывает ошибку.Попробуйте следующее!

merged.fillna(df2.groupby(level=0).transform("mean"))

связанный вопрос

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