如果我正在为Pandas 0.13.1正确阅读文档,read_csv应该在读取期间调用parse_dates = [<col1>,<col2>...]时产生日期时间列。 我得到的是Timestamp对象的列。 即使应用了.to_datetime,我仍然以Timestamp对象结束。 我在这里错过了什么? 如何读取字符串并直接转换为存储在数据框中的datetime对象? 似乎日期时间对象正在转换为数据帧中的时间戳。

df = read_csv('Beijing_2010_HourlyPM2.5_created20140325.csv',parse_dates=['Date (LST)'])

df['Date (LST)'][0] yields
Timestamp('2010-01-01 23:00:00', tz=None)

df['Date (LST)'] = pd.to_datetime(df['Date (LST)'])

df['Date (LST)'][0] still yields
Timestamp('2010-01-01 23:00:00', tz=None)

===============>>#1 票数:3 已采纳

时间戳是pandas处理日期时间的方式,您可以在Timestamp,datetime64和datetime之间移动 ,但大多数情况下使用Timestamp是您想要的 (并且pandas默认情况下会为您转换它)。

注意:Timestamp实际上只是一个epoch纳秒的int64列,即与numpy datetime64 ns相同(您将看到它是Timestamp列的dtype)。

如果必须强制使用日期列,则可以使用to_pydatetime方法,并通过分配对象dtype将其强制转换为未转换的Series,但是这将比使用Timestamps更慢并使用更多空间(因为日期时间本质上是元组和时间戳是int64)。

  ask by Chris translate from so

未解决问题?本站智能推荐: