Преобразование всех столбцов даты и времени переменной Pandas DataFrame в другой часовой пояс - PullRequest
0 голосов
/ 19 февраля 2020

Мне приходится иметь дело с Pandas DataFrame, который может состоять из разных столбцов даты и времени (они могут различаться, у меня может быть 0..N столбцов даты и времени). Я знаю, что для каждого столбца даты и времени часовой пояс UT C, и мне нужно преобразовать их данные в другой часовой пояс. Если я сделаю следующее:

df['a_datetime_column'].dt.tz_localize('UTC').dt.tz_convert('my_timezone') 

, это работает, но мне нужно заранее знать имена столбцов даты и времени (хорошо, я мог бы получить их каким-то образом).

Есть ли конкретные c способ сделать это преобразование для всех DataFrame одновременно независимо от состава его столбцов?

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Вы можете l oop над столбцами, имеющими тип datetime:

for col,dtyp in df.dtypes.iteritems():
    if dtyp == 'datetime64[ns]':
        df[col] = df[col].dt.tz_localize('UTC').dt.tz_convert('my_timezone') 
1 голос
/ 19 февраля 2020

Проверьте select_dtypes, вы можете использовать его, чтобы выбрать только столбцы datetime64[ns] и применить tz_convert к тем:

df.select_dtypes(inlcude=["datetime64[ns]"]).dt.tz_localize('UTC').dt.tz_convert('my_timezone') 
...