Я загрузил следующий CSV файл в iPython Notebook:
public = pd.read_csv("categories.csv")
public
Я также импортировал pandas как pd, numpy как np и matplotlib.pyplot как plt. Имеются следующие типы данных (ниже приведено резюме - имеется около 100 столбцов)
In [36]: public.dtypes
Out[37]: parks object
playgrounds object
sports object
roading object
resident int64
children int64
Я хочу изменить "парки", "игровые площадки", "спорт" и "дорожное движение" на категории (в них есть похожие ответы на шкалу). Каждый столбец имеет разные типы ответов на личность (например, "сильно согласен" ), "соглашаться" и т.д., другой имеет "очень важный", "важный" и т.д.), оставив остаток как int64.
Мне удалось создать отдельный файл данных - public1 - и изменить один из столбцов на тип категории, используя следующий код:
public1 = {'parks': public.parks}
public1 = public1['parks'].astype('category')
Однако, когда я попытался изменить номер сразу с помощью этого кода, я не увенчался успехом:
public1 = {'parks': public.parks,
'playgrounds': public.parks}
public1 = public1['parks', 'playgrounds'].astype('category')
Несмотря на это, я не хочу создавать отдельный фреймворк с только столбцами категорий. Я бы хотел, чтобы они были изменены в исходном фрейме данных.
Я попробовал множество способов добиться этого, а затем попробовал код здесь: Pandas: изменить тип данных столбцов...
public[['parks', 'playgrounds', 'sports', 'roading']] = public[['parks', 'playgrounds', 'sports', 'roading']].astype('category')
и получил следующую ошибку:
NotImplementedError: > 1 ndim Categorical are not supported at this time
Есть ли способ изменить "парки", "игровые площадки", "спорт", "дорожное движение" по категориям (поэтому затем можно проанализировать ответы на шкалу ответов "), оставив" резидент "и" детей "(и 94 другие столбцы, которые являются строками, int + floats) нетронутыми, пожалуйста? Или, есть ли лучший способ сделать это? Если у кого-нибудь есть предложения и/или отзывы, я был бы очень благодарен.... Я медленно собираюсь лысым, вырывая мои волосы!
Большое спасибо заранее.
отредактирован для добавления - я использую Python 2.7.