pandas 按小时和分钟分组,不使用多个索引

w46czmvw  于 2023-08-01  发布在  其他
关注(0)|答案(1)|浏览(82)

我有一个有两列的数据框。'Login_time'是日期时间中的打卡时间。时间间隔15分钟,范围超过30年。第二列是“计数”,这是人们在间隔时间内打卡的次数。
| 计数的| counted |
| --| ------------ |
| 二个| 2 |
| 六| 6 |
我想数一下一年中有多少人在所有时间间隔打卡。
| 总冲压数| total punches |
| --| ------------ |
| 三○ ○八| 3008 |
| 四万两千| 42000 |
我尝试了以下方法:

df_grouped = df2.groupby([df2['login_time'].dt.hour, df2['login_time'].dt.minute]).counted.sum()

字符串
它有点工作,但我得到了一个多索引与小时是一个索引和分钟间隔。
有没有可能像上面那样得到它?或者至少将指数单位为1?

k7fdbhmy

k7fdbhmy1#

不要按dt.hourdt.minute分组,只需按dt.time分组:

import pandas as pd

data = {'login_time': {0: pd.Timestamp('1970-01-01 20:00:00'),
                       1: pd.Timestamp('1970-01-01 20:15:00'),
                       2: pd.Timestamp('1970-01-02 20:00:00'),
                       3: pd.Timestamp('1970-01-02 20:15:00')},
        'counted': {0: 2, 1: 6, 2: 2, 3: 6}}

df = pd.DataFrame(data)

df_grouped = (df.groupby(df['login_time'].dt.time)['counted']
              .sum()
              .reset_index()
              .rename(columns={'login_time': 'interval', 'counted': 'total punches'}))

df_grouped

   interval  total punches
0  20:00:00              4
1  20:15:00             12

字符串

相关问题