【问题标题】:Converting a `pandas.tslib.Timestamp` object to `datetime`将 `pandas.tslib.Timestamp` 对象转换为 `datetime`
【发布时间】:2015-08-20 02:19:55
【问题描述】:

我正在尝试将pandas.tslib.Timestamp 对象转换为datetime。df['orig_iss_dt'] 是pandas.tslib.Timestamp 对象。我使用答案here 尝试这样做,但发现print(type(origination)) 仍然返回相同的类型。

df['orig_iss_dt'] = df['orig_iss_dt'].apply(lambda x: datetime.date(x.year,x.month,x.day)) 

for (i, row) in df:
    origination = row.orig_iss_dt
    print(type(origination))

【问题讨论】:

  • 你用的是什么版本的熊猫?

标签: python pandas


【解决方案1】:

将熊猫Timestamp 转换为datetime.datetime 的最简单方法是使用to_pydatetime 方法。这可以直接在Timestamp 上调用,也可以在系列上调用:

In [15]: s = pd.Series(pd.date_range('2012-01-01', periods=3))

In [16]: s
Out[16]:
0   2012-01-01
1   2012-01-02
2   2012-01-03
dtype: datetime64[ns]

In [17]: s[0]
Out[17]: Timestamp('2012-01-01 00:00:00')

In [18]: s.dt.to_pydatetime()
Out[18]:
array([datetime.datetime(2012, 1, 1, 0, 0),
       datetime.datetime(2012, 1, 2, 0, 0),
       datetime.datetime(2012, 1, 3, 0, 0)], dtype=object)

但请注意,这通常是不需要的,因为Timestamp 是datetime.datetime 的子类。

【讨论】:

    猜你喜欢
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多