每日时间表作为熊猫的指数

时间:2015-02-08 11:15:35

标签: python datetime pandas dataframe period

我想将最初作为CSV文件提供的每日时间表表示为Pandas DataFrame。计划中每行的关键是一天中的每小时范围。范围不重叠。例如:

00:00, 01:00, some data
01:00, 03:00, some more data
03:00, 04:30, some other data

如何创建一个数据框,其中一个索引级别代表开始到结束的小时范围?

1 个答案:

答案 0 :(得分:0)

从您的示例数据框开始(在其上放置列名称):

In [78]: df
Out[78]: 
   start    end            other
0  00:00  01:00        some data
1  01:00  03:00   some more data
2  03:00  04:30  some other data

假设start和end是字符串,我们可以将其转换为to_datetime的日期时间。这将使用默认日期,因为数据只有几小时:

In [79]: pd.to_datetime(df['end'], format='%H:%M')
Out[79]: 
0   1900-01-01 01:00:00
1   1900-01-01 03:00:00
2   1900-01-01 04:30:00
Name: end, dtype: datetime64[ns]

但假设开始和结束总是在同一天,如果我们只使用日期时间计算开始和结束之间的时差,则此默认日期无关紧要:

In [80]: df['range'] = pd.to_datetime(df['end'], format='%H:%M') - pd.to_datetime(df['start'], format='%H:%M')


In [81]: df
Out[81]: 
   start    end            other    range
0  00:00  01:00        some data 01:00:00
1  01:00  03:00   some more data 02:00:00
2  03:00  04:30  some other data 01:30:00