首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Pandas和Python3在特定时间获取列的值

使用Pandas和Python3在特定时间获取列的值
EN

Stack Overflow用户
提问于 2018-04-09 12:53:42
回答 1查看 40关注 0票数 2

我已经使用Pandas几个星期了,所以我还在探索它。

我已经创建了一个DataFrame,它每隔43分钟更新一次。DF的内容是玩家的统计数据,我已经按日对内容进行了分组,因为我想知道每一天的最大值是什么,在特定的列‘捐赠’。“捐赠”的价值在周日午夜被重置,因此它将持续增长一周。我想在同一DF中有另一列,其最大值为17.44。现在我想出了:

代码语言:javascript
运行
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-09 14:22:54

如果你想在17.44之前得到最大的时间,你可以这样做:

代码语言:javascript
运行
复制
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

Select rows per groups and with time conditions

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49733477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档