[英]convert time_utc to local time with timezone pandas
我想根據Local_timezone
變量將可變時間 UTC 轉換為本地時間。
我有一個帶有變量TIMEZONE
的 dataframe data_df
和帶有變量time_utc
。 我想在我的 dataframe 中創建一個 local_time 變量。
TIMEZONE
是一個字符串, time_utc
是一個日期時間。
我這樣做:
local_timezone = time_df['TIMEZONE']
data_df.loc[data_df['time_utc'].tz_convert(local_timezone), 'local_time']
我有這個錯誤:
TypeError: index is not a valid DatetimeIndex or PeriodIndex
假設您已經將data_df
與time_df
合並。 這意味着您的data_df
將具有time_utc
、 TIMEZONE
等。
例如
local_timezone = time_df['TIMEZONE']
local_timezone = local_timezone.to_frame('TIMEZONE')
data_df = pd.concat([data_df , local_timezone], axis=1)
要將time_utc
的時區轉換為本地時間,請使用apply()
將時區應用於每個值。
def set_timezone(row):
return row['time_utc'].tz_convert(row['TIMEZONE'])
data_df['local_time'] = data_df.apply(lambda x: set_timezone(x), axis = 1)
OUTPUT
前:
>>> data_df
time_utc TIMEZONE
0 2021-12-03 01:33:00+00:00 Europe/Paris
1 2021-12-03 03:50:00+00:00 Europe/Paris
后:
>>> data_df['local_time'] = data_df.apply(lambda x: set_timezone(x), axis = 1)
>>> data_df
time_utc TIMEZONE local_time
0 2021-12-03 01:33:00+00:00 Europe/Paris 2021-12-03 02:33:00+01:00
1 2021-12-03 03:50:00+00:00 Europe/Paris 2021-12-03 04:50:00+01:00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.