首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只包含时间部分的DatetimeIndex :有可能吗

只包含时间部分的DatetimeIndex :有可能吗
EN

Stack Overflow用户
提问于 2014-04-07 12:02:53
回答 2查看 1.1K关注 0票数 1

我一直被这样的问题困扰着。我对旅客流量有一套观察。数据存储在.xlsx文件中,结构如下:date_of_observation, time, station_name, boarding, alighting.

我想知道,如果我只需要日期时间的“时间”组件的话,是否有可能用这种数据创建使用DatetimeIndex的Dataframe。(在dataset中没有显示时间的重复值)。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-14 10:36:21

不,这是不可能的,只有日期时间或浮点索引。但是,unutbu提供的变体是非常有用的。

票数 0
EN

Stack Overflow用户

发布于 2014-04-07 13:11:54

也许您不需要将DatetimeIndex缩短到一个时间。相反,要选择仅基于时间组件的行,可以使用时间。例如,

代码语言:javascript
复制
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如下所示:

代码语言:javascript
复制
>>> 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之间的所有行,如下所示:

代码语言:javascript
复制
>>> 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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22911865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档