小编典典

如何从Pandas数据框中的时间戳列中删除时区

python

我读了外汇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

如何用时区天真的时间戳替换列?


阅读 200

收藏
2020-12-20

共1个答案

小编典典

该列必须是datetimedtype,例如from的使用pd.to_datetime,然后您可以使用tz_localize来更改时区,一个简单的时间戳对应于时区None

testdata['time'].dt.tz_localize(None)

除非列是索引(DatetimeIndex),则.dt存取器必须用于访问大熊猫日期时间的功能

2020-12-20