Python 如何计算每个小时内出现的不同值?
我有一个名为Python 如何计算每个小时内出现的不同值?,python,Python,我有一个名为df的数据帧,它看起来像这样:一列是时间戳,一列是s,只有三个可能的值1,0,-1。现在我想数一数每小时有多少个1,0,-1。有人能帮忙吗?谢谢 timestamp s 1/6/2018 23:10 0 1/6/2018 23:15 0 1/6/2018 23:23 0 1/6/2018 23:34 0 1/7/2018 0:05 0 1/7/2018 0:09 0 1/7/2018 0:46 0 1/7/2018 0:49 0 1/7/2018
df
的数据帧,它看起来像这样:一列是时间戳
,一列是s
,只有三个可能的值1,0,-1
。现在我想数一数每小时有多少个1,0,-1
。有人能帮忙吗?谢谢
timestamp s
1/6/2018 23:10 0
1/6/2018 23:15 0
1/6/2018 23:23 0
1/6/2018 23:34 0
1/7/2018 0:05 0
1/7/2018 0:09 0
1/7/2018 0:46 0
1/7/2018 0:49 0
1/7/2018 0:49 -1
1/7/2018 0:52 -1
1/7/2018 1:17 1
1/7/2018 1:26 0
1/7/2018 2:16 0
1/7/2018 2:23 1
1/7/2018 2:27 1
1/7/2018 2:34 0
1/7/2018 2:41 1
1/7/2018 2:43 1
1/7/2018 2:49 1
我想要的数据帧看起来像:
timestamp s_-1 s_0 s_1
1/6/2018 23:00 0 4 0
1/7/2018 0:00 2 4 0
1/7/2018 1:00 0 2 3
1/7/2018 2:00 0 2 5
您可以通过创建一个包含日期和时间的时间戳作为键的字典来实现这一点。所以您的键看起来像
[1/6/2018 23],[1/7/2018 0],…
,然后您的值可以是一个s值列表,然后您可以遍历字典并计数 粗粒度方法解决方案草图:
hour\u start=dt-timedelta(分钟=dt.minute,秒=dt.second,微秒=dt.microsond)
+=timedelta(hours=1)
,并在超过最后一个时间戳时停止这是一个非常直截了当的策略,但您必须完成思考过程,然后自己将其转化为代码。如果您有什么需要详细解释的,请告诉我。您具体尝试了什么?这不是一个代码编写服务,我们的期望是您实际上已经首先尝试了一些东西。请用所有相关的细节、代码和错误信息编辑您的问题。如果您不知道如何开始,请用纸和笔找出您需要做的事情,并将问题分解为多个部分。例如,首先您将创建一个位置来存储每小时的计数,然后您将查看每一行从时间戳确定小时,然后查看值,最后添加一个计数。@ScrapsedCola:对不起,如果我似乎期待代码编写服务,我做了研究,但没有找到线索。无论如何,帕克斯·沃比斯库姆的回答帮助了我。谢谢帕克斯的素描,它真的很有帮助!