基于DataFrame改变列类型的方法


Posted in Python onJuly 25, 2018

今天用numpy 的linalg.det()求矩阵的逆的过程中出现了一个错误:

TypeError: No loop matching the specified signature and casting was found for ufunc det

查了半天发现是数据类型的问题,numpy在算逆的时候会先检查一下数据类型是否一致,若不一致就会报错(话说这个错误提示信息也太难理解了,还得看源码o(?□?)o)。

由于我的数据是用pandas.DataFrame读取的,所以每一列的数据类型有可能不同。

回头检查一下数据,果然有的是int,有的是float。所以全部改为float64类型。

找到了如下的方法,以及DataFrame数据类型:

DataFrame 类型转换方法—astype()

import pandas as pd
df = pd.DataFrame([{'col1':'a', 'col2':'1'}, {'col1':'b', 'col2':'2'}])

print df.dtypes

df['col2'] = df['col2'].astype('int')
print '-----------'
print df.dtypes

df['col2'] = df['col2'].astype('float64')
print '-----------'
print df.dtypes

输出:

col1 object
col2 object
dtype: object
-----------
col1 object
col2  int32
dtype: object
-----------
col1  object
col2 float64
dtype: object

astype()也能一次改变所有数据的类型:

In[30]:a
Out[31]: 
   a   b   c   d
0 0.891380 0.442167 -0.539450 1.023458
1 -0.488131 -1.847104 -0.209799 -0.768713
2 1.290434 0.327096 0.358406 0.422209

In[32]:a.astype('int32')
Out[32]: 
 a b c d
0 0 0 0 1
1 0 -1 0 0
2 1 0 0 0

附:data type list

Data type Description
bool_ Boolean (True or False) stored as a byte
int_ Default integer type (same as C long; normally either int64 or int32)
intc Identical to C int (normally int32 or int64)
intp Integer used for indexing (same as C ssize_t; normally either int32 or int64)
int8 Byte (-128 to 127)
int16 Integer (-32768 to 32767)
int32 Integer (-2147483648 to 2147483647)
int64 Integer (-9223372036854775808 to 9223372036854775807)
uint8 Unsigned integer (0 to 255)
uint16 Unsigned integer (0 to 65535)
uint32 Unsigned integer (0 to 4294967295)
uint64 Unsigned integer (0 to 18446744073709551615)
float_ Shorthand for float64.
float16 Half precision float: sign bit, 5 bits exponent, 10 bits mantissa
float32 Single precision float: sign bit, 8 bits exponent, 23 bits mantissa
float64 Double precision float: sign bit, 11 bits exponent, 52 bits mantissa
complex_ Shorthand for complex128.
complex64 Complex number, represented by two 32-bit floats (real and imaginary components)
complex128 Complex number, represented by two 64-bit floats (real and imaginary components)

以上这篇基于DataFrame改变列类型的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python删除列表中重复记录的方法
Apr 28 Python
python任务调度实例分析
May 19 Python
Python编程中实现迭代器的一些技巧小结
Jun 21 Python
详解Python各大聊天系统的屏蔽脏话功能原理
Dec 01 Python
浅谈Python中带_的变量或函数命名
Dec 04 Python
Python获取当前公网ip并自动断开宽带连接实例代码
Jan 12 Python
Python实现的IP端口扫描工具类示例
Feb 15 Python
python 列表转为字典的两个小方法(小结)
Jun 28 Python
Python绘制频率分布直方图的示例
Jul 08 Python
使用apiDoc实现python接口文档编写
Nov 19 Python
Python运行DLL文件的方法
Jan 17 Python
Python机器学习算法之决策树算法的实现与优缺点
May 13 Python
对pandas中Series的map函数详解
Jul 25 #Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 #Python
Django实现支付宝付款和微信支付的示例代码
Jul 25 #Python
Python走楼梯问题解决方法示例
Jul 25 #Python
python 批量修改/替换数据的实例
Jul 25 #Python
django 实现电子支付功能的示例代码
Jul 25 #Python
python 去除txt文本中的空格、数字、特定字母等方法
Jul 24 #Python
You might like
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
动态创建类实例代码
2009/10/07 Python
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
python脚本内运行linux命令的方法
2015/07/02 Python
requests和lxml实现爬虫的方法
2017/06/11 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
python对日志进行处理的实例代码
2018/10/06 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
python推导式的使用方法实例
2021/02/28 Python
美国折扣网站:jClub
2017/08/07 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
火车来了教学反思
2014/02/11 职场文书
小学语文业务学习材料
2014/06/02 职场文书
诚信承诺书
2015/01/19 职场文书
个性发展自我评价2015
2015/03/09 职场文书
求职自我评价怎么写
2015/03/09 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
幼儿园六一主持词
2015/06/30 职场文书
新郎新娘致辞
2015/07/31 职场文书
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫