DataFrame 中的 Datetime 对象,只有时间
Posted
技术标签:
【中文标题】DataFrame 中的 Datetime 对象,只有时间【英文标题】:Datetime object in DataFrame with just time 【发布时间】:2020-08-04 06:17:22 【问题描述】:这是普通的列
0 06:55:22
1 06:55:23
2 06:55:24
3 06:55:25
4 06:55:26
我想将该列放在索引中,问题是当我尝试使用方法 resample() 时,我总是遇到同样的问题:
TypeError: 仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但获得了 'Index' 的实例
我一直在使用它来将时间列更改为
datetime dt['Time'] = pd.to_datetime(dt['Time'],format).apply(lambda x: x.time())
【问题讨论】:
【参考方案1】:您可以使用set_index
将Time
列设置为数据框的索引。
In [1954]: df.set_index('Time')
Out[1954]:
a
Time
06:55:23 1
06:55:24 2
06:55:25 3
06:55:26 4
OP 评论后更新
如果您没有date
列,那么当您将其转换为datetime
时,pandas 会附加一个默认日期1900-01-01
。像这样:
In [1985]: pd.to_datetime(df['Time'], format='%H:%M:%S')
Out[1985]:
0 1900-01-01 06:55:23
1 1900-01-01 06:55:24
2 1900-01-01 06:55:25
3 1900-01-01 06:55:26
Name: Time, dtype: datetime64[ns]
【讨论】:
主要问题是我无法将 dtype:object 更改为该列的日期时间,并将该列作为日期时间放在索引中... @renton 你也有date
专栏吗?如果没有,我已经提供了解决方案。请检查我的更新答案。
不,我没有,但我只需要时间,我不想要日期...,这可能吗,或者程序总是需要一个日期来制作我的东西想要
如果你不给出日期,它会添加一个默认日期。请检查我的答案的第二部分。
是的,那将是理想的。以上是关于DataFrame 中的 Datetime 对象,只有时间的主要内容,如果未能解决你的问题,请参考以下文章
将 Pandas DataFrame 中的日期对象列转换为字符串
pandas使用to_datetime函数将字符串时间数据列转化为时间对象数据列计算dataframe结束时间列和起始时间列的时间差并计算时间差的均值
pandas使用to_datetime函数将字符串时间数据列转化为时间对象数据列计算dataframe结束时间列和起始时间列的时间差并计算时间差的中位数(median)
pandas将dataframe中的年月日数据列合并成完整日期字符串并使用to_datetime将字符串格式转化为日期格式