我已经使用Pandas几个星期了,所以我还在探索它。
我已经创建了一个DataFrame,它每隔43分钟更新一次。DF的内容是玩家的统计数据,我已经按日对内容进行了分组,因为我想知道每一天的最大值是什么,在特定的列‘捐赠’。“捐赠”的价值在周日午夜被重置,因此它将持续增长一周。我想在同一DF中有另一列,其最大值为17.44。现在我想出了:
originalDF['date']=originalDF['date'].apply(lambda x:
dt.datetime.strptime(x, "%Y-%m-%d %H:%M:%S"))
originalDF['DayofYear']=originalDF['date'].dt.dayofyear
highestDonationByTheDay=originalDF.groupby(['DayofYear', 'name']).max()问题是,我无法控制一天中的时间,它只是返回一天的最大值,这个最大值总是23.43。
对于如何实现这一点有什么帮助吗?
这是originalDF的一个摘录:
捐款日期A B名称C D 2018-04-08 13:43:11 912 192 720 Eisenheim 80QVCQ8G 4240 2018-04-08 13:43:11 785 25 760 El Mariachi RUJL8R9Y 4108 2018-04-08 13:43:11 690 210 480 macomaco UJP8LVUL 3980 2018-04-08 13:43:11 915 155 155 760 Skoy 8RLVV20PY4065 2018-04-08 13:43:11 1373 613 760 TheSonicSliver 9LG8QV2G 4207 2018-08 14:43:14 922 202 720 Eisenheim 80QVCQ8G 4240 2018-04-08 14:43:14 :14:14:14 785 25 760 El Mariachi RUJL8R9Y 4078 2018-04-08 14:43:14 :14 690 210 macomaco UJP8LVUL 3980 2018-04-08 14:43:14 915 155 760 Skoy 8RLVV20PY 4065 -0408 14: 43 :14 1373 613 760 TheSonicSliver 9LG8QV2G 4207 2018-08 15:43:15 922 202 202 720 Eisenheim 80QVCQ8G 4240 2018-04-08 15:43:15 803 43 760 El Mariachi RUJL8R9Y 4108 2018-04-08 15:43:15 :15:15:15:15:15:15:15:15:15:15:15 690 210 480 macomaco UJP8LVUL 3980 2018-04-08 15:43:15 915 155 760 Skoy 8RLVV20PY 4065 2018-08 15:4315 1381 581 800 TheSonicSliver 9LG8QV2G 4207 2018-04-08 16:43:13 964 244 720 Eisenheim 80QQVCQ8G 4240 2018-08 16:43:13 827 47 780 El Mariachi RUJL8R9Y 4108 2018-04-08 16:43:13 690 210 macomaco UJP8LVUL 3980 -04-08 16:43:13 933 173 173 173 Skoy 8RLVV20PY 4065 2018-04-08 16:43:13 1389 589TheSonicSliver 9LG8QV2G 4207 2018-04-08 17:43:17 964 204 760 Eisenheim 80QVCQ8G 4240 2018-08 17:43:17 827 27 800 El Mariachi RUJL8R9Y 4051 2018-04-08 17:43:17 690 210 480 macomaco UJP8LVUL 3980 2018-08 17:43:17 958 198 760 Skoy 8RLVV20PY 4065 2018-08 17:43:17 1439 639 800 TheSonicSliver 9LG8QV2G4207 2018-04-08 18:43:17 984 224 760 Eisenheim 80QVCQ8G 4240 2018-04-08 18:43:17 827 27 800 El Mariachi RUJL8R9Y 4021 2018-04-08 18:43:17 690 210 480 macomaco UJP8LVUL 3980 2018-04-08 18:43:17 958 198 760 Skoy 8RLVV20PY 4065 2018-08 18:43:17 1439 639 800 TheSonicSliver 9LGQV2G 42018-04-04-0408 19:43:14 984 224 760 Eisenheim 80QVCQ8G 4240 2018-04-08 19:43:14 827 27 800 El Mariachi RUJL8R9Y 4021 2018-08 19:43:14 690 210 480 macomaco UJP8LVUL 3980 2018-04-08 19:43:14 958 198 760 Skoy 8RLVV20PY 4065 2018-04-08 19:43:14 1441 641 800 TheSonicSliver 9LG8QV2G 4207 2018-08 20:43: 4311 984 224 760 Eisenheim 80QVCQ8G 4240 2018-04-08 20:43:11 827 27 800 El Mariachi RUJL8R9Y 4021 2018-04-08 20:43:11 690 210 480 macomaco UJP8LVUL 3980 2018-08 20:43:11 958 158 Skoy 8RLVV20PY 4065 2018-08 20:43:11 1441 641 800 TheSonicSliver 9LG8QV2G 4207 2018-08 21:43:13 984 224Eisenheim 80QVCQ8G 4240 2018-04-08 21:43:13 827 27 800 El Mariachi RUJL8R9Y 4021 2018-04-08 21:43:13 690 210 480 macomaco UJP8LVUL 3980 2018-04-08 21:43:13 958 158 800 Skoy 8RLVV20PY 4065 2018-08 21:43:13 1445 645 800 TheSonicSliver 9LG8QV2G 4207 2018-08 22:43:13 994 234 760 Eisenheim80QVCQ8G 4240 2018-04-08 22:43:13 827 27 800 El Mariachi RUJL8R9Y 4021 2018-04-08 22:43:13 690 210 480 macomaco UJP8LVUL 3980 2018-04-08 22:43:13 958 158 800 Skoy 8RLVV20PY 4065 2018-04-08 22:43:13 1445 645 800 TheSonicSliver 9 LGQV2G 4207 2018 -08 23:43:12 1032 272 760 Eisen80QVC8G 4240 2018-04-08 23:43:12 827 27 800 El Mariachi RUJL8R9Y 4021 2018-08 23:43:12 690 210 480 macomaco UJP8LVUL 3980 2018-08 23:43:12 958 158 800 Skoy 8RLVV20PY 4065 2018-04-08 23:43:12 1473 633 840 TheSonicSliver 9LG8QV2G 4207
发布于 2018-04-09 14:22:54
如果你想在17.44之前得到最大的时间,你可以这样做:
maxDF = originalDF.set_index('date').between_time('00:00:00', '17:44:00').reset_index()
maxDF['DayofYear'] = maxDF['date'].dt.dayofyear
highestDonationByTheDay = maxDF.groupby(['DayofYear', 'name']).max()大量借来的:
Conditional selection before certain time of day - Pandas dataframe
https://stackoverflow.com/questions/49733477
复制相似问题