Я хочу исправить соответствующие времена данных для их часовых поясов, используя пакет «us» для извлечения метода часового пояса и панд «tz_covert ()», чтобы применить исправление, но получаю ошибку «TypeError: ожидаемая строка или байты- как объект "
Я попытался привести соответствующий столбец к строке типа с помощью df ['StateCode'] = df ['StateCode']. Astype (str)
posting_time = (
df
.loc[:, ['shipment_id', 'courier_id', 'posted_at','StateCode']]
.drop_duplicates(subset=['shipment_id','courier_id'], keep='first')
.assign(
posted_at_dt=lambda x: pd.to_datetime(x['posted_at'])\
.dt.tz_localize(pytz.utc)\
.dt.tz_convert(us.states.lookup(x['StateCode']).capital_tz)
)
)
Мой фрейм данных выглядит так:
shipment_id courier_id posted_at StateCode
0 14 228898 2019-02-19 13:18:55 MI
1 91919 196838 2019-01-19 19:29:02 TX
2 92187 196838 2019-01-19 19:29:28 TX
3 92736 196838 2019-01-19 19:29:46 TX
4 92760 196838 2019-01-19 19:29:59 TX
Я сузил проблему до:
us.states.lookup(x['StateCode']).capital_tz
Но "x ['StateCode']" должен быть строковым типом, поэтому я не уверен, почему я получаю "TypeError: ожидаемая строка или байтовоподобный объект"?