Pandas Dataframe.resample('MS')

时间:2016-10-03 15:06:55

标签: python pandas

我想知道是否有人可以帮我理解我可能出错的地方。我有一个数据框,其中包含缺少月份的数据(部件号,每月销售额,年份),我正在尝试使用 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月

请指点。

0 个答案:

没有答案