使用熊猫从CSV设置前一晚的开始时间,没有日期



t我想对第二天早上 22:00:00 到 09:00:00 过夜的重复测量数据(仅时间,无日期)运行时间序列分析。

如何设置时间序列从 22:00:00 开始。目前,即使在绘图时,它也从 00:00:00 开始,到 23:00:00 结束,在 09:00:00 和 23:00:00 之间有一条平线?

df = pd.read_csv('1310.csv', parse_dates=True)
df['Time'] =  pd.to_datetime(df['Time'])
df['Time'].apply( lambda d : d.time() )
df = df.set_index('Time')
df['2017-05-16 22:00:00'] + pd.Timedelta('-1 day')

注意:代码最后一行中的日期是自动添加的,在执行df['Time']时看到,因此我在最后一行插入了与日期相同的格式,表示 22:00:00。

这是错误:

TypeError: Could not operate Timedelta('-1 days +00:00:00') with block values unsupported operand type(s) for +: 'numpy.ndarray' and 'Timedelta'

您应该将时间戳视为pd.Timedeltas,并在开始时间之前向示例添加一天。

创建一些示例数据:

import pandas as pd
d = pd.date_range(start='22:00:00', periods=12, freq='h')
s = pd.Series(d).dt.time
df = pd.DataFrame(pd.np.random.randn(len(s)), index=s, columns=['value'])
df.to_csv('data.csv')
df
value
22:00:00    -0.214977
23:00:00    -0.006585
00:00:00    0.568259
01:00:00    0.603196
02:00:00    0.358124
03:00:00    0.027835
04:00:00    -0.436322
05:00:00    0.627624
06:00:00    0.168189
07:00:00    -0.321916
08:00:00    0.737383
09:00:00    1.100500

读入,将索引设置为时间增量,在开始时间之前向时间增量添加一天,然后重新分配给索引。

df2 = pd.read_csv('data.csv', index_col=0)
df2.index = pd.to_timedelta(df2.index)
s = pd.Series(df2.index)
s[s < pd.Timedelta('22:00:00')] += pd.Timedelta('1d')
df2.index = pd.to_datetime(s)
df2
value
1970-01-01 22:00:00 -0.214977
1970-01-01 23:00:00 -0.006585
1970-01-02 00:00:00 0.568259
1970-01-02 01:00:00 0.603196
1970-01-02 02:00:00 0.358124
1970-01-02 03:00:00 0.027835
1970-01-02 04:00:00 -0.436322
1970-01-02 05:00:00 0.627624
1970-01-02 06:00:00 0.168189
1970-01-02 07:00:00 -0.321916
1970-01-02 08:00:00 0.737383
1970-01-02 09:00:00 1.100500

如果要设置第一天的日期:

df2.index += (pd.Timestamp('2015-06-06') - pd.Timestamp(0))
df2
value
2015-06-06 22:00:00 -0.214977
2015-06-06 23:00:00 -0.006585
2015-06-07 00:00:00 0.568259
2015-06-07 01:00:00 0.603196
2015-06-07 02:00:00 0.358124
2015-06-07 03:00:00 0.027835
2015-06-07 04:00:00 -0.436322
2015-06-07 05:00:00 0.627624
2015-06-07 06:00:00 0.168189
2015-06-07 07:00:00 -0.321916
2015-06-07 08:00:00 0.737383
2015-06-07 09:00:00 1.100500

最新更新