我已将以下CSV文件输入iPython Notebook:
public = pd.read_csv("categories.csv")
public
Run Code Online (Sandbox Code Playgroud)
我还将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
Run Code Online (Sandbox Code Playgroud)
我希望将"公园","游乐场","体育"和"漫游"更改为类别(他们在其中有类似的比例反应 - 每列都有不同类型的喜欢的回应(例如,一个人"非常同意","同意"等等,另一个具有"非常重要","重要"等等,其余部分为int64.
我能够创建一个单独的数据框 - public1 - 并使用以下代码将其中一列更改为类别类型:
public1 = {'parks': public.parks}
public1 = public1['parks'].astype('category')
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用此代码一次更改数字时,我没有成功:
public1 = {'parks': public.parks,
'playgrounds': public.parks}
public1 = public1['parks', 'playgrounds'].astype('category')
Run Code Online (Sandbox Code Playgroud)
尽管如此,我不想仅使用类别列创建单独的数据框.我想在原始数据框中更改它们.
我尝试了很多方法来实现这一点,然后在这里尝试了代码:Pandas:更改列的数据类型 ...
public[['parks', 'playgrounds', 'sports', 'roading']] = public[['parks', 'playgrounds', 'sports', 'roading']].astype('category')
Run Code Online (Sandbox Code Playgroud)
并得到以下错误:
NotImplementedError: > 1 ndim Categorical are not supported at this time
Run Code Online (Sandbox Code Playgroud)
有没有办法改变"公园","游乐场","体育","漫步"到类别(这样可以分析比特率的反应),留下"常驻"和"儿童"(以及94个其他列是字符串,int +浮动)请原谅?或者,有更好的方法吗?如果有人有任何建议和/或反馈我会非常感激....我慢慢地去秃头撕开我的头发!
提前谢谢了.
编辑添加 …