找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1926|回复: 3

[求助] 关于数据框多列改变类型的问题求解

9

主题

27

帖子

27

积分

贫民

积分
27
falseform 发表于 2018-2-4 16:58:25 | 显示全部楼层 |阅读模式
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
sepal length (cm)    150 non-null object
sepal width (cm)     150 non-null object
petal length (cm)    150 non-null object
petal width (cm)     150 non-null object
target               150 non-null object
dtypes: object(5)


如上data的类型所示,前四列其实均为数值第五列是字符串,我想把前四列改成浮点格式使用如下代码不行
data.astype('float',errors='ignore') 加上errors参数不报错但是没反应,
然后这么弄
data.iloc[:,:4]=data.iloc[:,:4].astype('float') 意思是把前四列改成浮点然后把源数据的前四列赋值也没反应,请问有什么办法吗


回复

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-2-4 17:32:19 | 显示全部楼层
本帖最后由 sheeboard 于 2018-2-4 21:01 编辑

可以用to_numeric,不过iris.csv文件用read_csv读出来是float的,你的数据文件怎样?

to_numeric

to_numeric
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-2-4 17:33:58 | 显示全部楼层
iris.csv
Screenshot from 2018-02-04 17-28-44.png
回复

使用道具 举报

9

主题

27

帖子

27

积分

贫民

积分
27
falseform  楼主| 发表于 2018-2-5 10:26:55 | 显示全部楼层

感谢,是这样的,这个df是拼接的,前四列数值变量和一列字符串变量拼接而成的,所以应该自动生成的object类型,data.iloc[:,:4]=data.iloc[:,:4].astype('float')这种形式不能赋值是因为引用的关系吗赋值给引用的对象了,导出再导入确实是个好方法, 用data.apply(to_numeric('float'))我试了下因为有字符串列所以需要增加 errors='ignore'就可以了,感觉好奇怪啊, astype就不行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表