亲爱的,我有以下问题需要解决:我有一个包含分钟数据(df.minute)的Pandas Dataframe和一个包含每日数据的第二个Dataframe(df.daily)。分钟数据不均匀:有些日子可能会有更多的观察结果。目标是将df.daily中包含的数据分配给df.minute。换句话说,对于df.daily中的每一天,获取数据并将其分配给日期对应的df.minute中的所有行。我很确定这可以在不使用循环的情况下完成。非常感谢
df.minute
time value
2016-07-30 17:00:00 102.00
2016-07-30 17:01:00 102.12
2016-07-30 17:02:00 102.00
2016-07-30 17:03:00 102.99
2016-07-30 17:04:00 102.80
...
2016-07-31 11:40:00 100.45
2016-07-31 11:41:00 100.52
2016-07-31 11:42:00 100.55
2016-07-31 11:43:00 100.50
2016-07-31 11:44:00 100.00
...
2016-08-02 12:15:00 102.50
2016-08-02 12:16:00 102.54
2016-08-02 12:17:00 102.58
2016-08-02 12:18:00 102.65
2016-08-02 12:19:00 102.49
...
df.daily
time value
2016-07-29 0.1
2016-07-30 0.2
2016-07-31 0.3
2016-08-01 0.4
2016-08-02 0.5
2016-08-03 0.6
2016-08-04 0.7
...
结果应该是
df.minute
time value
2016-07-30 17:00:00 0.2
2016-07-30 17:01:00 0.2
2016-07-30 17:02:00 0.2
2016-07-30 17:03:00 0.2
2016-07-30 17:04:00 0.2
...
2016-07-31 11:40:00 0.3
2016-07-31 11:41:00 0.3
2016-07-31 11:42:00 0.3
2016-07-31 11:43:00 0.3
2016-07-31 11:44:00 0.3
...
2016-08-02 12:15:00 0.5
2016-08-02 12:16:00 0.5
2016-08-02 12:17:00 0.5
2016-08-02 12:18:00 0.5
2016-08-02 12:19:00 0.5
...
df1['new'] = df1['time'].dt.floor('d').map(df2.set_index('time')['value'])
print (df1)
time value new
0 2016-07-30 17:00:00 102.00 0.2
1 2016-07-30 17:01:00 102.12 0.2
2 2016-07-30 17:02:00 102.00 0.2
3 2016-07-30 17:03:00 102.99 0.2
4 2016-07-30 17:04:00 102.80 0.2
5 2016-07-31 11:40:00 100.45 0.3
6 2016-07-31 11:41:00 100.52 0.3
7 2016-07-31 11:42:00 100.55 0.3
8 2016-07-31 11:43:00 100.50 0.3
9 2016-07-31 11:44:00 100.00 0.3
10 2016-08-02 12:15:00 102.50 0.5
11 2016-08-02 12:16:00 102.54 0.5
12 2016-08-02 12:17:00 102.58 0.5
13 2016-08-02 12:18:00 102.65 0.5
14 2016-08-02 12:19:00 102.49 0.5