我正在尝试将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))
答案 0 :(得分:12)
将pandas 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
的子类。