为了账号安全,请及时绑定邮箱和手机立即绑定

填充数据框列Python中的缺失值

填充数据框列Python中的缺失值

饮歌长啸 2021-08-14 16:39:05
我的数据分为 4 列,如下所示:State       Year        Month        ValueAK          2010         1             10AK          2010         3             20AK          2011         1             28AK          2011         5             29AK          2011         12            31..TX          2010         2             10TX          2010         3             11TX          2010         4             20TX          2010         12            22TX          2011         4             30TX          2011         7             33..我想,以填补缺失的月与以前的重复值相同的年份,因为他们是我加在一起刚好累计总和。月份并不总是从第 1 个月开始,有时可能会丢失整年,所以我需要解决这个问题。即:TX 可以在 2011 年的第 4 个月开始等......所需的输出如下所示:State       Year        Month        ValueAK          2010         1             10AK          2010         2             10AK          2010         3             20AK          2010         4             20AK          2010         5             20..AK          2010         12            20AK          2011         1             28AK          2011         2             28..TX          2010         1             9TX          2010         2             10TX          2010         3             11TX          2010         4             20TX          2010         5             20..TX          2010         12            22
查看完整描述

1 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

一种解决方案是使用分类数据:


# convert Month to categorical with 1-12 range

df['Month'] = pd.Categorical(df['Month'], categories=range(1, 13))


# groupby to give Cartesian product for categorical columns

df = df.groupby(['State', 'Year', 'Month']).first().reset_index()


# forward fill by group

df['Value'] = df.groupby('State')['Value'].ffill()

此解决方案假设 2010 年 12 月的数据可以溢出到特定州的 2011 年 1 月的空数据。


查看完整回答
反对 回复 2021-08-14
  • 1 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号