Pandas重新索引以填充缺失日期,或者更好的填充方法?
Pandas重新索引以填充缺失日期,或者更好的填充方法?
我收集的数据是某家工厂的缺勤记录。有些天没有缺勤,所以该天没有数据或日期记录。然而,与其他示例不同的是,在任何一天都可能因各种原因出现多次缺勤。数据中日期与记录之间的比例并不总是1比1。
我希望的结果是这样的:
(索引) 班次 描述 实例(总数) 01-01-14 第二位面包师 纪律 0 01-01-14 第二位面包师 假期 0 01-01-14 第一位厨师 纪律 0 01-01-14 第一位厨师 假期 0 01-02-14 第二位面包师 纪律 4 01-02-14 第二位面包师 假期 3 01-02-14 第一位厨师 纪律 3 01-02-14 第一位厨师 假期 3
依此类推。这个想法是所有班次和描述在时间段内的所有天数都有值(在这个例子中是2014年1月1日-2014年12月31日)。
我阅读了几个示例,最接近实现这个目标的是这里。
ts = pd.read_csv('Absentee_Data_2.csv' , encoding = 'utf-8' ,parse_dates=[3] ,index_col=3 ,dayfirst=True ) idx = pd.date_range('01.01.2009', '12.31.2017') ts.index = pd.DatetimeIndex(ts.index) # ts = ts.reindex(idx, fill_value='NaN') df = pd.DataFrame(index = idx) df1 = df.join(ts, how='left')
但是,当我取消ts = ts.reindex(idx, fill_value='NaN')
的注释时,我会收到错误消息。我尝试了至少10种其他方法来实现我想要的结果,所以我不确定这是否是正确的方法,但它似乎让我离进展最近。
这是一些示例数据:
描述 无故 实例 日期 班次 纪律 FALSE 1 Jan 2 2014 第二位面包师 假期 TRUE 2 Jan 2 2014 第一位厨师 纪律 FALSE 3 Jan 2 2014 第二位面包师 假期 TRUE 1 Jan 2 2014 第一位厨师 纪律 FALSE 2 Apr 8 2014 第二位面包师 假期 TRUE 3 Apr 8 2014 第一位厨师 纪律 FALSE 1 Jun 1 2014 第二位面包师 假期 TRUE 2 Jun 1 2014 第一位厨师 纪律 FALSE 3 Jun 1 2014 第二位面包师 假期 TRUE 1 Jun 1 2014 第一位厨师 假期 TRUE 2 Jul 5 2014 第一位厨师 纪律 FALSE 3 Jul 5 2014 第二位面包师 假期 TRUE 2 Dec 3 2014 第一位厨师
非常感谢您的帮助,我是个新手,已经两天了,没有太多进展。我真的很感激这里的人们提供答案,但更重要的是解答的教学。