我的数据分为 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 月的空数据。
添加回答
举报
0/150
提交
取消