Каков наилучший способ создания нескольких фиктивных переменных во фрейме данных на основе объекта dtype исходного столбца? - PullRequest
2 голосов
/ 16 января 2020

У меня есть DataFrame со множеством столбцов, которые необходимо дублировать, исходя из того, что dtype является объектом. Какой самый быстрый и эффективный способ кодировать / подставить эти столбцы? Понимание списка? Лямбда? Регулярные функции и присвоение переменных? В конечном итоге я буду использовать некоторые столбцы в модели линейной регрессии. Набор данных уже очень большой, поэтому, если я смогу сделать это без создания избыточного количества столбцов, это было бы идеально. Вот неудачный пример кода, который я пытаюсь заставить работать:

[pd.get_dummies(col for col in df.columns if df.columns.dtype == 'object')]

1 Ответ

2 голосов
/ 16 января 2020

Вы можете использовать select_dtypes для отправки подмножества, которое вы хотите превратить в макеты. Вы можете concat это вернуться к исходному DataFrame.

pd.get_dummies(df.select_dtypes('O'))

В противном случае вы пропустите весь DataFrame и будете указывать столбцы в списке. Вы можете использовать понимание списка или просто проверить, какие dtypes являются объектами.

pd.get_dummies(df, columns=df.dtypes.loc[lambda x: x == 'O'].index.tolist())
...