Панды меняют типы данных столбцов на все столбцы - PullRequest
0 голосов
/ 24 января 2019

У меня более 100 столбцов в моем фрейме данных Pandas.

Я хочу динамически анализировать каждый столбец и изменять тип данных столбца.

Например, если имя столбца содержит дату, то измените столбец на тип даты, иначе преобразовайтестолбец на стр.

Что-то подобное у меня работает,

df['Sasd Date'] = df['Sasd Date'].dt.date
df['Sasd'] = df['Sasd'].astype(str)

Но я хочу сделать это динамически для всех столбцов с вышеуказанным условием, без упоминания имени столбца.

1 Ответ

0 голосов
/ 24 января 2019

Там нет такой вещи , как str серия dtype. Строки обычно хранятся в серии object dtype, и это поведение по умолчанию при чтении данных в кадр данных из файла CSV / Excel.

Поэтому, учитывая только даты, вы можете использовать логическое индексирование:

date_cols = df.columns.str.contains('date', case=False, regex=False)
df[date_cols] = df[date_cols].apply(pd.to_datetime, errors='coerce')

Серия object dtype со значениями datetime.date равна , не рекомендуется , но это возможно с помощью пользовательской функции:

df[date_cols] = df[date_cols].apply(lambda s: pd.to_datetime(s, errors='coerce').dt.date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...