Преобразование довольно простое:
- Извлечение временной метки Unix
- Преобразование временной метки Unix в дату и время
- Преобразование даты и времени в местный часовой пояс
Код: Выделить всё
for col in ['Col1', 'Col2', 'Col3', 'Col4']:
df[col] = df[col].str.extract(r'\(([^\)]+)\)', expand=False)
df[col] = pd.to_datetime(df[col],unit='ms').dt.tz_localize('UTC').dt.tz_convert('Australia/Sydney').dt.strftime('%d/%m/%Y')
Казалось бы, текущий код не совсем оптимизирован, так как нам приходится выполнять преобразование в 2 этапа, каждый раз перебирая все строки.
Я видел много вопросов здесь, где метод apply использовался для итеративной обработки данных в столбцах с помощью частной функции или встроенной лямбда-функции.
Попробовав этот подход, я столкнулся со многими проблемами, в основном связанными с:
- неоднозначными результатами данных
- лямбда или сбой частной функции из-за проблем с NaN
- Как можно обрабатывать встроенные преобразования столбцов в нескольких
столбцах с помощью метода apply (т. е. как мы можем реплицировать мой код с помощью метода apply)
Каков наиболее оптимальный и эффективный метод применения преобразований к данным в Pandas
Подробнее здесь: https://stackoverflow.com/questions/787 ... -dataframe