从整数创建 tz 感知 pandas 时间戳对象
Creating tz aware pandas timestamp objects from an integer
我有一个整数,它是 unix 纪元之后的微秒数。 (格林威治标准时间)
如何使用 astype 将 1349863207154117 转换为 pandas.Timestamp("2012-10-10T06:00:07.154117", tz=¨UTC¨)?关于 astype 的文档不是很详尽。我尝试了以下方法。
x = 1349863207154117
dt64 = np.int64(x).astype("M8[us]")
print dt64
returns:
np.datetime64("2012-10-10T06:00:07.154117-0400")
- 如果我只想要几秒钟,这行得通:
time = pd.Timestamp(datetime.datetime.fromtimestamp(int(x / 1e6)), tz=¨UTC¨)
- Pandas: Epoch timestamps 涵盖了这一点。
In [2]: pd.to_datetime(1349863207154117,unit='us')
Out[2]: Timestamp('2012-10-10 10:00:07.154117')
- 如果你想在当地时区使用
In [6]: pd.to_datetime(1349863207154117,unit='us').tz_localize('US/Eastern')
Out[6]: Timestamp('2012-10-10 10:00:07.154117-0400', tz='US/Eastern')
- 如果你的时间是 UTC,但你想用另一个 tz。
In [9]: pd.to_datetime(1349863207154117,unit='us').tz_localize('UTC').tz_convert('US/Eastern')
Out[9]: Timestamp('2012-10-10 06:00:07.154117-0400', tz='US/Eastern')
- 或者这个
In [10]: pd.to_datetime(1349863207154117,unit='us',utc=True).tz_convert('US/Eastern')
Out[10]: Timestamp('2012-10-10 06:00:07.154117-0400', tz='US/Eastern')
我有一个整数,它是 unix 纪元之后的微秒数。 (格林威治标准时间)
如何使用 astype 将 1349863207154117 转换为 pandas.Timestamp("2012-10-10T06:00:07.154117", tz=¨UTC¨)?关于 astype 的文档不是很详尽。我尝试了以下方法。
x = 1349863207154117
dt64 = np.int64(x).astype("M8[us]")
print dt64
returns:
np.datetime64("2012-10-10T06:00:07.154117-0400")
- 如果我只想要几秒钟,这行得通:
time = pd.Timestamp(datetime.datetime.fromtimestamp(int(x / 1e6)), tz=¨UTC¨)
- Pandas: Epoch timestamps 涵盖了这一点。
In [2]: pd.to_datetime(1349863207154117,unit='us')
Out[2]: Timestamp('2012-10-10 10:00:07.154117')
- 如果你想在当地时区使用
In [6]: pd.to_datetime(1349863207154117,unit='us').tz_localize('US/Eastern')
Out[6]: Timestamp('2012-10-10 10:00:07.154117-0400', tz='US/Eastern')
- 如果你的时间是 UTC,但你想用另一个 tz。
In [9]: pd.to_datetime(1349863207154117,unit='us').tz_localize('UTC').tz_convert('US/Eastern')
Out[9]: Timestamp('2012-10-10 06:00:07.154117-0400', tz='US/Eastern')
- 或者这个
In [10]: pd.to_datetime(1349863207154117,unit='us',utc=True).tz_convert('US/Eastern')
Out[10]: Timestamp('2012-10-10 06:00:07.154117-0400', tz='US/Eastern')