Python熊猫根据另一列的条件填充缺失值(NaN)

时间:2020-09-23 06:30:07

标签: python pandas

我是python和pandas的初学者,目前正在处理一组COVID数据。

我已经弄清楚了如何使用df.fillna(method='ffill')用上一个单元格填充NaN值。

但是,我不确定如何以以下条件为基础:如果国家/地区名称与其前一个单元格中的国家/地区名称不同,则总大小写单元格值应为0,否则将NaN替换为前一个单元格的总个案值。

一个例子就是这样: see picture 1

对此: see picture 2

1 个答案:

答案 0 :(得分:1)

仅将groupbyfillna一起使用即可得到所需的结果。 columns是您要对缺失值逻辑应用的所有列。

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

请注意,您需要两次应用fillna,一次使用前向填充,一次使用常数0来填充所有nan值。这是为了确保以新组开头的所有Nans都填充为0。