python修改字段类型_Python Pandas-将某些列类型更改为类别

我已将以下CSV文件馈送到iPython笔记本: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

我想把‘公园’、‘操场’、‘运动’和‘道路’改成不同的类别(它们有likert量表反应——每个栏目都有不同类型的likert反应(例如,一个栏目有“强烈同意”、“同意”等,另一个栏目有“非常重要”、“重要”等),剩下的如int64。

我可以创建一个单独的dataframe-public1-并使用以下代码将其中一列更改为category类型:public1 = {'parks': public.parks}

public1 = public1['parks'].astype('category')

但是,当我试图使用此代码同时更改一个数字时,却失败了:public1 = {'parks': public.parks,

'playgrounds': public.parks}

public1 = public1['parks', 'playgrounds'].astype('category')

尽管如此,我不想创建只包含categories列的单独数据框。我希望在原始数据框中更改它们。public[['parks', 'playgrounds', 'sports', 'roading']] = public[['parks', 'playgrounds', 'sports', 'roading']].astype('category')

并得到以下错误:NotImplementedError: > 1 ndim Categorical are not supported at this time

有没有办法把“公园”、“游乐场”、“运动”、“道路”改为类别(这样就可以分析利克特量表的反应),而不去碰“居民”和“儿童”(以及其他94个字符串、int+float列)?或者,有没有更好的方法?如果有人有任何建议和/或反馈,我将非常感激…我正在慢慢地秃头扯我的头发!

多谢提前。

编辑添加-我正在使用Python2.7。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值