我想知道是否有人可以帮我理解我可能出错的地方。我有一个数据框,其中包含缺少月份的数据(部件号,每月销售额,年份),我正在尝试使用 dataframe.resample('MS')。asfreq()来识别丢失的月份并将它们插入我的列表中。我之前执行了 groupby ,以确保在重采样之前收集数据。 我的代码是:
df2=df1[['Part_ID','Order_Qty','Extended_Price','Month','Month1','Year']]
df2['Month1'] = pd.to_datetime(df2.Month.astype(str) +'-01-'+ df2.Year.astype(str))
df2=df2.set_index(pd.DatetimeIndex(df2['Month1']))
df2=df2.groupby([df2['Part_ID'],df2['Year']])
df2=df2['Month1'].resample('MS').asfreq()
df3=df2.to_frame()
print(df3)
df4=df3.reset_index()
执行后已经添加了几个月,但有些人不见了。任何人都可以解释一下原因吗?
重新采样后的输出为:
Part_ID Year Month1
08095601/2 2014 2014-07-01 2014-07-01
2014-08-01 2014-08-01
2014-09-01 2014-09-01
2014-10-01 2014-10-01
2014-11-01 2014-11-01
2015 2015-01-01 2015-01-01
2015-02-01 2015-02-01
2015-03-01 2015-03-01
2015-04-01 2015-04-01
2015-05-01 2015-05-01
2015-06-01 2015-06-01
08095601/5 2014 2014-07-01 2014-07-01
2014-08-01 2014-08-01
2014-09-01 2014-09-01
...
ZZSSL 2007 2007-10-01 2007-10-01
2007-11-01 NaT
2007-12-01 2007-12-01
2008 2008-01-01 2008-01-01
2008-02-01 2008-02-01
2008-03-01 2008-03-01
2008-04-01 2008-04-01
2008-05-01 2008-05-01
2008-06-01 2008-06-01
2008-07-01 NaT
2008-08-01 NaT
2008-09-01 2008-09-01
2008-10-01 2008-10-01
2009 2009-01-01 2009-01-01
2009-02-01 2009-02-01
2009-03-01 2009-03-01
2009-04-01 2009-04-01
2009-05-01 2009-05-01
2009-06-01 2009-06-01
2009-07-01 2009-07-01
bracket 2014 2014-07-01 2014-07-01
2014-08-01 2014-08-01
2014-09-01 2014-09-01
2014-10-01 2014-10-01
2014-11-01 2014-11-01
2014-12-01 2014-12-01
2015 2015-01-01 2015-01-01
2015-02-01 NaT
2015-03-01 NaT
2015-04-01 2015-04-01
正如您在2014年可以看到的部分08095601/2没有第12个月,部分ZZSSL没有第11个月或第12个月。支架已经正确插入了第2个月和第2个月。 2015年3月
请指点。