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

标签 python pandas dataframe timezone timestamp-with-timezone

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

我该怎么做才能用时区原始时间戳替换该列?

最佳答案

该列必须是 datetime dtype,例如在使用 pd.to_datetime 之后. 然后,您可以使用 tz_localize要更改时区,一个天真的时间戳对应于时区 None:

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

除非该列是索引 ( DatetimeIndex ),否则 .dt accessor必须用于访问 pandas datetime functions .

关于python - 如何从 Pandas 数据框中的时间戳列中删除时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49198068/

相关文章:

python - 如何将字典值分离到新字典中?

python - Ray 对象存储使用内核外内存不足。如何配置像 s3 存储桶这样的外部对象存储?

python - Pandas 中的列直方图

R:对列表中的所有数据框进行子集化

dataframe - 在 Julia 中将一维数组转换为 DataFrame

python - 如何判断对象/实例是否可哈希

python - 实时更新 matplotlib 图形以进行数据采集

python - 优化 apply 函数内的 pandas 过滤器

python - 有没有一种方法可以将两个(或更多)数据帧写入一个 Excel 电子表格?

R如何将数据框转换为单行