gpt4 book ai didi

python - 仅包含时间部分的 DatetimeIndex : is it possible

转载 作者:行者123 更新时间:2023-11-30 23:25:38 26 4
gpt4 key购买 nike

我一直被这样的问题困扰。我有一套客流量的观察。数据存储在.xlsx文件中,结构如下:观察日期、时间、车站名称、登机、下车。

我想知道如果我只需要日期时间的“时间”组件,是否可以从此类数据创建带有 DatetimeIndex 的 Dataframe 。 (数据集中没有出现重复的时间)。

这个要求的原因是我使用了基于循环时间的特定逻辑(例如,23.00 < 0.00,但比较时为0.01 < 0.02),所以我不想将它们转换为日期时间。

最佳答案

也许您不需要将 DatetimeIndex 减少到只是一个时间。相反,要仅根据时间分量选择行,您可以使用 DataFrame.between_time 。例如,

import pandas as pd
import numpy as np

N = 200
dti = pd.date_range('2000-1-1', freq='10T', periods=N)
df = pd.DataFrame({'station_name': np.random.choice(list('ABCDEFGHIJ'), size=N),
'boarding': np.arange(N)*10,
'alighting': np.arange(N)},
index=dti)

数据框如下所示:

>>> print(df.head())

alighting boarding station_name
2000-01-01 00:00:00 0 0 B
2000-01-01 00:10:00 1 10 I
2000-01-01 00:20:00 2 20 H
2000-01-01 00:30:00 3 30 C
2000-01-01 00:40:00 4 40 E

但是您可以选择时间在 23:000:30 之间的所有行,如下所示:

>>> print(df.between_time('23:00', '0:30'))
alighting boarding station_name
2000-01-01 00:00:00 0 0 B
2000-01-01 00:10:00 1 10 I
2000-01-01 00:20:00 2 20 H
2000-01-01 00:30:00 3 30 C
2000-01-01 23:00:00 138 1380 D
2000-01-01 23:10:00 139 1390 E
2000-01-01 23:20:00 140 1400 A
2000-01-01 23:30:00 141 1410 D
2000-01-01 23:40:00 142 1420 E
2000-01-01 23:50:00 143 1430 B
2000-01-02 00:00:00 144 1440 B
2000-01-02 00:10:00 145 1450 I
2000-01-02 00:20:00 146 1460 F
2000-01-02 00:30:00 147 1470 C

关于python - 仅包含时间部分的 DatetimeIndex : is it possible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22911865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com