Я понял, как заполнить значения NaN предыдущей ячейкой с помощью df.fillna(method='ffill').

Однако я не уверен, как основывать это на условии, что если название страны отличается от названия страны в предыдущей ячейке, то общее значение ячейки наблюдения должно быть 0, в противном случае замените NaN итоговым значением предыдущей ячейки. значение случая.

0
xxx.ava.xxx 23 Сен 2020 в 09:30

1 ответ

Лучший ответ

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

columns = ['total_cases', 'total_deaths', ...]
df[columns] = df.groupby('location')[columns].fillna(method='ffill').fillna(0)

Обратите внимание, что вам нужно применить fillna дважды, один раз с прямым заполнением и один раз с константой 0, чтобы заполнить все значения nan. Это необходимо для того, чтобы все nans, начинающиеся в новой группе, были заполнены 0.

1
Shaido 23 Сен 2020 в 07:18