基于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多线程编程(一):threading模块综述
Apr 05 Python
Saltstack快速入门简单汇总
Mar 01 Python
Flask-Mail用法实例分析
Jul 21 Python
Django  ORM 练习题及答案
Jul 19 Python
python调用Matplotlib绘制分布点图
Oct 18 Python
Django xadmin开启搜索功能的实现
Nov 15 Python
Python 类的魔法属性用法实例分析
Nov 21 Python
TensorFlow使用Graph的基本操作的实现
Apr 22 Python
opencv 查找连通区域 最大面积实例
Jun 04 Python
彻底搞懂python 迭代器和生成器
Sep 07 Python
Python爬虫数据的分类及json数据使用小结
Mar 29 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Apr 04 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下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
简单谈谈Python中的元祖(Tuple)和字典(Dict)
2017/04/21 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
python读取与处理netcdf数据方式
2020/02/14 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
python爬虫---requests库的用法详解
2020/09/28 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
canvas实现有递增动画的环形进度条的实现方法
2019/07/10 HTML / CSS
2016婚礼主持词开场白
2015/11/24 职场文书
培训心得体会怎么写
2016/01/25 职场文书
总结高并发下Nginx性能如何优化
2021/11/01 Servers