下面是股票價格資料,我將其保存到 DataFrame 中。列t是表示時間的序列號。
| 一種 | 乙 | 噸 |
|---|---|---|
| 1.20 | 5.45 | 1636534800000 |
| 7.98 | 1.33 | 1636542000000 |
| 8.29 | 2.44 | 1636549200000 |
| 8.76 | 6.55 | 1636556400000 |
- 如果我把 arrow.get(1636534800000),那么我會得到 2021-11-10T09:00:00 00:00 沒有問題
但是,在執行以下操作時出現錯誤。請注意,t 列的資料型別是 int64
trade_date = df.loc[0,'t']
date_reformat=arrow.get(trading_date)
錯誤資訊:
"raise TypeError(f"無法決議型別為 {type(arg)!r} 的單個引數。") TypeError:無法決議 <class 'numpy.int64'> 型別的單個引數。"
- 我需要一個代碼來用“實時”而不是序列號替換 t 列中的值。t 列中的值采用 UTC 時區,我住在美國東海岸,因此我需要將其調整回東部時間。但是我們有夏令時。我們目前在 EST 時區,3 月后我們將前往 EDT 時區。因此,如果時間在 Mar 和 Nov 之間,則 t 應調整為 UTC-4,其余時間 t 列應調整為 UTC-5。我不需要“ 00:00”,我只需要那個 year-month-dateThh:mm:ss
uj5u.com熱心網友回復:
您的輸入是以毫秒為單位的 UNIX 時間(自 1970-01-01 UTC)。轉換為日期時間使用
df['datetime'] = pd.to_datetime(df['t'], unit='ms', utc=True)
設定utc=True將指定日期/時間是 UTC(不是本地時間等)。現在您可以轉換為美國/東部時區以考慮 DST 活動/非活動:
df['datetime'] = df['datetime'].dt.tz_convert('America/New_York')
并轉換為具有某種格式的字串,例如不顯示 UTC 偏移量:
df['datetime_string'] = df['datetime'].dt.strftime('%Y-%m-%d %H:%M:%S')
這為您提供了示例:
df[['datetime', 'datetime_string']]
datetime datetime_string
0 2021-11-10 04:00:00-05:00 2021-11-10 04:00:00
1 2021-11-10 06:00:00-05:00 2021-11-10 06:00:00
2 2021-11-10 08:00:00-05:00 2021-11-10 08:00:00
3 2021-11-10 10:00:00-05:00 2021-11-10 10:00:00
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/362356.html
上一篇:“日期”如何/為什么檢測輸入格式“yyyymmddThhmmssZ”的多個時區部分
下一篇:修改以字串格式給出的日期
