[英]How to split weekly data to hourly?
我必须在每周数据和每小时的另一列数据中拥有数据框,例如:
datetime | A
------------------------|-------------
06/01/2020 00:00:00 | 130
13/01/2020 00:00:00 | 80
.....................................
21/12/2020 00:00:00 | 234
28/12/2020 00:00:00 | 123
和每小时:
datetime | A
------------------------|-------------
06/01/2020 00:00:00 |
06/01/2020 01:00:00 |
................................
27/12/2020 22:00:00 |
27/12/2020 23:00:00 |
我想通过将每周数据除以 7*24(一周中的小时数)来填充每小时数据。 我认为这应该是相对简单的,但我目前在尝试实施它时遇到了很多困难。 最好的方法是如何实现这一点?
为了澄清我想要这样的东西:
datetime | A
------------------------|-------------
06/01/2020 00:00:00 | 80/7/24
06/01/2020 01:00:00 | 80/7/24
................................
27/12/2020 22:00:00 | 123/7/24
27/12/2020 23:00:00 | 123/7/24
您可以使用以下内容:
df2 = (df_week.assign(date = pd.to_datetime(df_week['datetime']).dt.date)
.merge(df_hour.assign(date = pd.to_datetime(df_hour['datetime']).dt.date), on = 'date', suffixes=['_x', ''])
.assign(A = lambda x: x.A_x/7/24)[['datetime', 'A']])
df2
datetime A
0 06/01/2020 00:00:00 0.77381
1 06/01/2020 01:00:00 0.77381
打破这个:
df_week['date'] = pd.to_datetime(df_week['datetime']).dt.date
df_hour['date'] = pd.to_datetime(df_hour['datetime']).dt.date
df2 = df_week.merge(df_hour, on = 'date', suffixes=['_x', ''])
df_hour['A'] = df2['A_x']/7/24
df_hour
datetime A date
0 06/01/2020 00:00:00 0.77381 2020-06-01
1 06/01/2020 01:00:00 0.77381 2020-06-01
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.