微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pandas 根据其他列标准插入缺失值

如何解决Pandas 根据其他列标准插入缺失值

我有当前的数据框:

日期 来源 类型 访问 销售
01/01/2020 来源 1 类型 1 100 10
01/01/2020 来源 2 类型 1 150 5
02/01/2020 来源 1 类型 1 NaN NaN
02/01/2020 来源 2 类型 1 125 15
03/01/2020 来源 1 Type2 150 18
03/01/2020 来源 2 Type2 NaN NaN
04/01/2020 来源 1 Type2 150 25
04/01/2020 来源 2 Type2 120 05

我想做的是一个简单的 .interpolate() 缺失数据,但是我需要按来源和类型对它进行分组以保持数据尽可能准确,而不是基于上面和下面的行哪些不相关。

我已经到了这个阶段:

df_fixed = df[['Source','Type','Visits','Sales']].loc[(df['Source'] == 'Source1') & (df['Type'] == 'Type1')].interpolate()

这是第一步,但不能更进一步,感觉有更简单的方法

完成此任务最优雅的方式是什么?

解决方法

一个想法是改变 NAN - 中位数或平均值。

df['visits'].fillna(df['visits'].median(),inplace=True)
df.fillna(df.mean())

enter image description here


编辑:

如果您决定使用 .interpolate() - 那么

需要按来源和类型对其进行分组:

您可以使用 groupBy() - 按来源和类型分组的方法:

df.groupby(['Source','Type'])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。