繁体   English   中英

使用Python将每周数据转换为每日数据

[英]Convert weekly data into daily data with Python

我会尽量在这个问题上尽可能清楚。 假设我的数据框形成为:

Date          Quantity
05/05/2017    34
12/05/2017    24
19/05/2017    45
26/05/2017    23
2/06/2017     56
9/06/2017     32

我想将具有每周数据(如您所见)的数据帧转换为具有每日数据的数据帧。 但是,我的数据框中会有一些“漏洞”(例如周末日)。 我已经将每日日期存储到另一个变量中。 我想得到这样的东西:

Date          Quantity
05/05/2017    34
08/05/2017    34
09/05/2017    34
...           ...
2/06/2017     56
5/06/2017     56
6/06/2017     56
...           ...

我的想法是有一个循环,说“每当日期在每周数据框中的日期之前(例如19/05/2017)但高于上一个日期(2017年5月12日),我想追加到每日数据帧中的“数量”列中的正确数字(在本例中为45)。

但是,我不知道如何在Python中执行此操作。 我应该将日期转换为数字然后再转换为日期吗? 有没有人有更快的方法来做到这一点? 非常感谢你

这是一个使用resample工作日频率 (B)和前向填充的选项:

df['Date'] = pd.to_datetime(df.Date, format='%d/%m/%Y')    
df.set_index('Date').resample('B').ffill().reset_index()

#         Date  Quantity
#0  2017-05-05      34
#1  2017-05-08      34
#2  2017-05-09      34
#...
#20 2017-06-02      56
#21 2017-06-05      56
#22 2017-06-06      56
#...

如果我们说你的每日数据在一个名为days的变量中,而Date就是你的索引,那么

>>>df.reindex(days).fillna(method='ffill')

应该返回你想要的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM