计算列中的时间值

2024-04-26 00:35:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用Python pandas导入的文档。列中有时间值,我想知道从8-10小时到10-12小时有多少个值。我不知道从哪里开始。我尝试了(data.loc[(data['Time'] >= 8 & (data['Time'] < 10)] ,但语法无效。我该怎么做

TIME
08:04:16
08:04:53
...
10:04:05
...
08:59:21
...
15:56:10

完整数据如下所示:https://i.stack.imgur.com/avqWi.png


Tags: 数据文档httpscompandasdatatimestack
2条回答

我假设您的列是对象类型(实际上它包含字符串s)

因此,第一步是将其转换为日期时间类型(日期部分) 是从当天开始的,但这无关紧要)

然后您应该从中读取小时(dt.hour),并检查 它在所需范围内,例如,在之间使用(结果暂时为 abool系列)

剩下的唯一一步就是计算它(计算值)

因此,检查810之间的小时数的代码可以是:

pd.to_datetime(df.Time).dt.hour.between(8,10).sum()

转换为时间增量

df.Time = pd.to_timedelta(df.Time)

m = (df.Time>='08:00:00') & (df.Time<'10:00:00')

df1 = df[m].copy()

相关问题 更多 >