基于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装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
在Python中通过threading模块定义和调用线程的方法
Jul 12 Python
python django事务transaction源码分析详解
Mar 17 Python
numpy排序与集合运算用法示例
Dec 15 Python
Linux下python制作名片示例
Jul 20 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
django重新生成数据库中的某张表方法
Aug 28 Python
pandas使用之宽表变窄表的实现
Apr 12 Python
文件上传服务器-jupyter 中python解压及压缩方式
Apr 22 Python
在主流系统之上安装Pygame的方法
May 20 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 Python
详解Python牛顿插值法
May 11 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
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
利用javascript查看html源文件
2006/11/08 Javascript
动态调用css文件——jquery的应用
2007/02/20 Javascript
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
js使用formData实现批量上传
2020/03/27 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
2019/09/16 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
利用Psyco提升Python运行速度
2014/12/24 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
python操作kafka实践的示例代码
2019/06/19 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
实习医生自我评价
2013/09/22 职场文书
光荣入党自我鉴定
2014/01/22 职场文书
入党申请自荐书范文
2014/02/11 职场文书
授权委托书怎么写
2014/04/03 职场文书
平面设计师岗位职责
2014/09/18 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
2014年科技工作总结
2014/11/26 职场文书
开业庆典嘉宾致辞
2015/08/01 职场文书
工作建议书范文
2019/07/08 职场文书