我正在尋找將 UNIX 時間戳物件轉換為熊貓日期時間。我從一個單獨的源匯入時間戳,它顯示21-01-22 00:01第一個時間點和21-01-22 00:15第二個時間點的日期時間。然而,我的轉換比這兩個晚了 10 個小時。這與每個字串末尾的 1000 有關嗎?
df = pd.DataFrame({
'Time' : ['/Date(1642687260000 1000)/','/Date(1642688100000 1000)/'],
})
df['Time'] = df['Time'].str.split(' ').str[0]
df['Time'] = df['Time'].str.split('(').str[1]
df['Time'] = pd.to_datetime(df['Time'], unit = 'ms')
出去:
Time
0 2022-01-20 14:01:00
1 2022-01-20 14:15:00
其他來源:
Time
0 2022-01-21 00:01:00
1 2022-01-21 00:15:00
uj5u.com熱心網友回復:
您可以使用正則運算式來提取 Unix 時間和 UTC 偏移量,然后將 Unix 時間決議為 datetime 并將 UTC 偏移量添加為 timedelta,例如
import pandas as pd
df = pd.DataFrame({
'Time' : ['/Date(1642687260000 1000)/','/Date(1642688100000 1000)/'],
})
df[['unix', 'offset']] = df['Time'].str.extract(r'(\d )([ -]\d )')
df['datetime'] = (pd.to_datetime(df['unix'], unit='ms')
pd.to_datetime(df['offset'], format='%z').apply(lambda t: t.utcoffset()))
# or without the apply, but by using an underscored method:
# df['datetime'] = (pd.to_datetime(df['unix'], unit='ms')
# pd.to_datetime(df['offset'], format='%z').dt.tz._offset)
df['datetime']
# 0 2022-01-21 00:01:00
# 1 2022-01-21 00:15:00
# Name: datetime, dtype: datetime64[ns]
不幸的是,如果你想避免apply. 這也僅在您具有恒定偏移量時才有效,即如果它在整個系列中是相同的偏移量。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/417181.html
標籤:
上一篇:如何從具有多個條件的WHERE條件中排除ISNULL?
下一篇:無法將此字串決議為日期
