python - tz_localize : KeyError: ('Asia/Singapore' , u'发生在索引 0')

标签 python pandas dataframe

引用:Python pandas convert unix timestamp with timezone into datetime

搜索了该主题,但仍然找不到答案。

我有一个数据框,其格式如下:

df timestamp
1  1549914000 
2  1549913400  
3  1549935000 
3  1549936800     
5  1549936200  

我使用以下命令将纪元转换为日期:

df['date'] = pd.to_datetime(df['timestamp'], unit='s')

该行将生成始终比本地时间晚 8 小时的日期。

因此,我按照链接中的示例使用 apply + tz.localize 到亚洲/新加坡,我在上述代码之后的下一行尝试了以下代码。

df['date'] = df.apply(lambda x: x['date'].tz_localize(x['Asia/Singapore']), axis=1)

但是 python 返回错误如下:

Traceback (most recent call last):
  File "/home/test/script.py", line 479, in <module>
    schedule.every(10).minutes.do(main).run()
  File "/opt/cloudera/parcels/Anaconda-4.0.0/lib/python2.7/site-packages/schedule/__init__.py", line 411, in run
    ret = self.job_func()
  File "/home/test/script.py", line 361, in main
    df['date'] = df.apply(localize_ts, axis = 1)
  File "/opt/cloudera/parcels/Anaconda-4.0.0/lib/python2.7/site-packages/pandas/core/frame.py", line 4877, in apply
    ignore_failures=ignore_failures)
  File "/opt/cloudera/parcels/Anaconda-4.0.0/lib/python2.7/site-packages/pandas/core/frame.py", line 4973, in _apply_standard
    results[i] = func(v)
  File "/home/test/script.py", line 359, in localize_ts
    return pd.to_datetime(row['date']).tz_localize(row['Asia/Singapore'])
  File "/opt/cloudera/parcels/Anaconda-4.0.0/lib/python2.7/site-packages/pandas/core/series.py", line 623, in __getitem__
    result = self.index.get_value(self, key)
  File "/opt/cloudera/parcels/Anaconda-4.0.0/lib/python2.7/site-packages/pandas/core/indexes/base.py", line 2574, in get_value
    raise e1
KeyError: ('Asia/Singapore', u'occurred at index 0')

我是否正确替换了 .tz_localize(x['tz']) ?

最佳答案

正如所写,您的代码正在查找名为 Asia/Singapore 的列。试试这个:

df['date'] = df['date'].dt.tz_localize('Asia/Singapore')

关于python - tz_localize : KeyError: ('Asia/Singapore' , u'发生在索引 0'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54917395/

相关文章:

python - 如何在不丢失名称的情况下加入数据框

R 在特定值之前添加空行

python - 如何拆分列表中的两个索引而不是在 python 中创建单独的列表

python - DataFrame 中基于标签的安全选择

python - 使用掩码计算DataFrame中的平均值

python - 如何解决 pandas.get_dummies 中的问题

python - 如何在 pandas 或 seaborn 中绘制有限数量的条形图?

python - 如果来自 Python 字典的子类,LRU 缓存不可散列类型

python - 为 Python 设置 Vim

python - 使用 setup.py 构建轮子时是否可以排除某些文件?