【发布时间】:2018-08-18 06:42:35
【问题描述】:
我阅读了Pandas change timezone for forex DataFrame,但我想让我的数据框时区的时间列变得幼稚,以便与 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
如何将列替换为时区原始时间戳?
【问题讨论】:
-
stackoverflow.com/questions/16628819/… -- 似乎适用于某种对象,但不适用于数据框的列。
标签: python pandas dataframe timezone timestamp-with-timezone