将日期时间列表转换为每小时分布数据框

尼蒂什

我有一个日期时间字符串值列表。我想让它们从 00 小时到 24 小时每小时分发一次。

例如,一个示例列表:

['2021-06-18 14:39:54', '2021-06-18 08:30:26', '2021-06-18 15:07:12', '2021-06-18 13:13:29', '2021-06-18 11:27:48', '2021-06-19 09:25:26', '2021-06-19 16:14:38', '2021-06-19 13:41:31', '2021-06-19 15:09:42', '2021-06-19 03:24:29']

和预期的数据框视图:

         date  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
0  2021-06-18  0  0  0  0  0  0  0  0  1  0  0  1  0  1  1  1  0  0  0  0  0  0  0  0  0
1  2021-06-19  0  0  0  1  0  0  0  0  0  1  0  0  0  1  0  1  1  0  0  0  0  0  0  0  0

我通过以下方式将值转换为日期时间:

time = datetime.strptime(item, '%Y-%m-%d %H:%M:%S')

并得到了时间

hr = time.hour

In 可以使用 if else 得到结果,但它太天真了。是他们优雅地做到这一点的一种方式。

TIA。

金巴利

使用l您的列表,您可以使用以下方法将其转换为一系列日期时间pd.to_datetime

>>> s = pd.Series(l).transform(pd.to_datetime)
>>> s
0   2021-06-18 14:39:54
1   2021-06-18 08:30:26
2   2021-06-18 15:07:12
3   2021-06-18 13:13:29
4   2021-06-18 11:27:48
5   2021-06-19 09:25:26
6   2021-06-19 16:14:38
7   2021-06-19 13:41:31
8   2021-06-19 15:09:42
9   2021-06-19 03:24:29
dtype: datetime64[ns]

从那里,有很多方法可以做到这一点,使用.dt 访问器值,在这里您对.dt.date 和感兴趣.dt.hour最短的是我相信使用pd.crosstab

>>> table = pd.crosstab(s.dt.date, s.dt.hour, rownames=['date'], colnames=['hour'])
>>> table
hour        3   8   9   11  13  14  15  16
date                                      
2021-06-18   0   1   0   1   1   1   1   0
2021-06-19   1   0   1   0   1   0   1   1

如果您还想拥有所有缺失的时间,您当然可以reindex

>>> table.reindex(columns=pd.RangeIndex(0, 24), fill_value=0)
            0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20  21  22  23
date                                                                                                      
2021-06-18   0   0   0   0   0   0   0   0   1   0   0   1   0   1   1   1   0   0   0   0   0   0   0   0
2021-06-19   0   0   0   1   0   0   0   0   0   1   0   0   0   1   0   1   1   0   0   0   0   0   0   0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将每小时时间序列数据帧转换为单个小时的多个数据帧

使用日期时间每小时频率创建数据框

如何将15分钟数据转换为每小时以熊猫为单位的时间?

将不规则的时间序列转换为python中的每小时数据并具有正态分布

将分钟数据转换为每小时数据

如何将每小时数据转换为6/12/24每小时数据

将每小时的行数据转换为新列Pandas

PrestoSQL 将事件数据转换为每小时摘要

将varchar转换为日期时间,包括时分和秒

如何将UNIX时间戳列表转换为pandas数据框中的日期时间对象列表?

Python数据框将日期时间列转换为秒

如何将数据框转换为日期时间格式

将数据框列从系列转换为日期时间

将熊猫数据框转换为日期时间

将时间戳转换为Spark数据框中的日期

将缺少日期的数据框转换为时间序列

将数据框列表转换为时间序列

将日期列表转换为R中的数据框

将开始时间和总持续时间转换为每小时经过的时间

使用 Pandas 将非连续日期列转换为这些日期的每小时值

将时间戳转换为日期,时间,小时,分钟

在数据框中按日期时间按小时分组

如何将每小时数据转换为半小时

如何将数据框的日期和时间列转换为熊猫的日期时间格式?

将小时分钟字符串时间转换为utc,反之亦然

将日期时间列表转换为 int

将不规则的时间序列转换为python pandas中的每小时数据

熊猫-将事件持续时间的每小时转换为单独的一行

R - 将每日格式的日期列转换为每小时粒度