基于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字典,函数,全局变量代码解析
Dec 18 Python
机器学习之KNN算法原理及Python实现方法详解
Jul 09 Python
使用Flask集成bootstrap的方法
Jul 24 Python
对pytorch网络层结构的数组化详解
Dec 08 Python
用python爬取租房网站信息的代码
Dec 14 Python
Django Rest framework解析器和渲染器详解
Jul 25 Python
Python代码块及缓存机制原理详解
Dec 13 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
python3实现飞机大战
Nov 29 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 Python
python中__slots__节约内存的具体做法
Jul 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
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
php输出1000以内质数(素数)示例
2014/02/16 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
js实现简单五子棋游戏
2020/05/28 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
深入理解javascript中的this
2021/02/08 Javascript
JavaScript实现前端倒计时效果
2021/02/09 Javascript
对python中return和print的一些理解
2017/08/18 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
python turtle 绘制太极图的实例
2019/12/18 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
世界上最好的足球商店:Unisport
2019/03/02 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
入党自我鉴定范文
2013/10/04 职场文书
会计岗位职责
2013/11/08 职场文书
党的生日演讲稿
2014/09/10 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
小学语文国培研修日志
2015/11/13 职场文书
Python词云的正确实现方法实例
2021/05/08 Python
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis