【问题标题】:Coverting epoch time to local time using pandas使用 pandas 将纪元时间转换为本地时间
【发布时间】:2020-08-03 09:22:21
【问题描述】:

我有一个专栏,我将时间作为纪元时间。例如 1359699060370。我有大约百万行。现在我正在使用

df['datetime'] = pd.to_datetime(df['Real_First_Packet'], unit = 'ms')

我正在使用这个 '[datetime' 列来创建新列,例如一个用于日期,一个用于小时,依此类推。

df['day'] = df['datetime'].dt.day

但是 pd.to_datetime 返回的是 GMT 日期时间。我需要本地时间格式。所以我使用了以下代码

df['datetime'] = pd.DatetimeIndex(pd.to_datetime(df['Real_First_Packet'],unit='ms')).tz_localize('UTC').tz_convert('US/Eastern')

对于一百万行,这需要更多时间。有没有比上述方法更好的方法。

【问题讨论】:

    标签: python pandas epoch


    【解决方案1】:

    没有必要本地化到UTC,因为to_datetime 默认已经提供了。

    将您的代码修改为以下内容:

    df['datetime'] = pd.to_datetime(df['Real_First_Packet'], utc=True).dt.tz_convert('US/Eastern')
    

    您可以通过分块或缓存来提高性能。在 2M 行时,我会考虑使用 map/reduce 工具,例如 hadoop 或 pyspark。

    【讨论】:

      猜你喜欢
      • 2015-12-22
      • 2016-12-24
      • 1970-01-01
      • 2013-03-02
      • 2013-01-18
      • 2018-10-01
      • 1970-01-01
      • 2012-09-06
      • 2012-08-12
      相关资源
      最近更新 更多