python改变numpy数据类型_numpy-Python Pandas-将某些列类型更改为类别

我已将以下CSV文件输入到iPython Notebook:

public = pd.read_csv("categories.csv")

public

我也将pdas导入为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列 是字符串,整数+浮点数)吗? 还是有更好的方法来做到这一点? 如果有人有任何建议和/或反馈,我将不胜感激..am慢慢地秃头撕开我的头发!

提前谢谢了。

编辑添加-我正在使用Python 2.7。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值