Я понял, как заполнить значения NaN предыдущей ячейкой с помощью df.fillna(method='ffill')
.
Однако я не уверен, как основывать это на условии, что если название страны отличается от названия страны в предыдущей ячейке, то общее значение ячейки наблюдения должно быть 0, в противном случае замените NaN
итоговым значением предыдущей ячейки. значение случая.
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.
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.