我读了外汇DataFrame的Pandas更改时区,但我想让我的数据框时区的time列幼稚,以便与sqlite3数据库实现互操作性。
我的pandas数据框中的数据已经转换为UTC数据,但是我不想在数据库中维护此UTC时区信息。
给定其他来源的数据样本,它看起来像这样:
print(type(testdata)) print(testdata) print(testdata.applymap(type))
给出:
<class 'pandas.core.frame.DataFrame'> time navd88_ft station_id new 0 2018-03-07 01:31:02+00:00 -0.030332 13 5 1 2018-03-07 01:21:02+00:00 -0.121653 13 5 2 2018-03-07 01:26:02+00:00 -0.072945 13 5 3 2018-03-07 01:16:02+00:00 -0.139917 13 5 4 2018-03-07 01:11:02+00:00 -0.152085 13 5 time navd88_ft station_id \ 0 <class 'pandas._libs.tslib.Timestamp'> <class 'float'> <class 'int'> 1 <class 'pandas._libs.tslib.Timestamp'> <class 'float'> <class 'int'> 2 <class 'pandas._libs.tslib.Timestamp'> <class 'float'> <class 'int'> 3 <class 'pandas._libs.tslib.Timestamp'> <class 'float'> <class 'int'> 4 <class 'pandas._libs.tslib.Timestamp'> <class 'float'> <class 'int'> new 0 <class 'int'> 1 <class 'int'> 2 <class 'int'> 3 <class 'int'> 4 <class 'int'>
但
newstamp = testdata['time'].tz_convert(None)
给出最终错误:
TypeError: index is not a valid DatetimeIndex or PeriodIndex
如何用时区天真的时间戳替换列?
该列必须是datetimedtype,例如from的使用pd.to_datetime,然后您可以使用tz_localize来更改时区,一个简单的时间戳对应于时区None:
datetime
pd.to_datetime
tz_localize
None
testdata['time'].dt.tz_localize(None)
除非列是索引(DatetimeIndex),则.dt存取器必须用于访问大熊猫日期时间的功能。
DatetimeIndex
.dt