熊猫中的日期时间转换问题

时间:2019-01-04 15:23:56

标签: python python-3.x pandas datetime python-datetime

这是我的问题的转载示例:

df = pd.DataFrame(["2018-01-13 17:25:54+0100",
    "2018-01-13 07:23:36+0100",
    "2018-01-13 08:15:48+0100"], columns=["date"])

print(type(datetime.strptime(df["date"][1], '%Y-%m-%d %H:%M:%S%z')))

print(type(pd.Series(df["date"].apply(lambda s: datetime.strptime(s, '%Y-%m-%d %H:%M:%S%z')))[1]))

输出为:

类“ datetime.datetime”

类'pandas._libs.tslibs.timestamps.Timestamp'

如何使用apply函数(或类似的函数)获取datetime.datetime对象?

1 个答案:

答案 0 :(得分:1)

将熊猫方法用于datetime操作

通常,在处理Pandas数据帧时,避免标准库中的datetime模块。您应该要使用矢量化操作,并且应该依靠基于NumPy的矢量化的Pandas方法:

df['date'] = pd.to_datetime(df['date'])

print(df['date'].dtype)
# datetime64[ns]

但是,如果您坚持要...

如果您希望导出到datetime.datetime值的数组以供在Pandas之外使用,则可以使用to_pydatetime

py_date = df['date'].dt.to_pydatetime()
# array([datetime.datetime(2018, 1, 13, 16, 25, 54),
#        datetime.datetime(2018, 1, 13, 6, 23, 36),
#        datetime.datetime(2018, 1, 13, 7, 15, 48)], dtype=object)

但是,一旦您使用了Pandas,就几乎不需要这样做了。