我一直被这样的问题困扰着。我对旅客流量有一套观察。数据存储在.xlsx文件中,结构如下:date_of_observation, time, station_name, boarding, alighting.
我想知道,如果我只需要日期时间的“时间”组件的话,是否有可能用这种数据创建使用DatetimeIndex的Dataframe。(在dataset中没有显示时间的重复值)。
这一要求的原因是,我使用基于循环时间的特定逻辑(例如,23.00 < 0.00,但相比0.01 < 0.02 ),所以我不想将它们转换为日期时间。
发布于 2014-04-14 10:36:21
不,这是不可能的,只有日期时间或浮点索引。但是,unutbu提供的变体是非常有用的。
发布于 2014-04-07 13:11:54
也许您不需要将DatetimeIndex缩短到一个时间。相反,要选择仅基于时间组件的行,可以使用时间。例如,
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)dataframe如下所示:
>>> 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:00和0: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 Chttps://stackoverflow.com/questions/22911865
复制相似问题