基于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实现获取域名所用服务器的真实IP
Oct 25 Python
python的pdb调试命令的命令整理及实例
Jul 12 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
python正则表达式之对号入座篇
Jul 24 Python
Python 中Django安装和使用教程详解
Jul 03 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
python实现根据文件格式分类
Oct 31 Python
Django 批量插入数据的实现方法
Jan 12 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
pycharm 2018 激活码及破解补丁激活方式
Sep 21 Python
导致python中import错误的原因是什么
Jul 01 Python
Python中Cookies导出某站用户数据的方法
May 17 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
网站防止被刷票的一些思路与方法
2015/01/08 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
为何JS操作的href都是javascript:void(0);呢
2015/11/12 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
在vue中实现echarts随窗体变化
2020/07/27 Javascript
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
Python中__name__的使用实例
2015/04/14 Python
Python实现批量下载图片的方法
2015/07/08 Python
python中解析json格式文件的方法示例
2017/05/03 Python
Python判断有效的数独算法示例
2019/02/23 Python
Python读写锁实现实现代码解析
2020/11/28 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
自荐信格式
2013/12/01 职场文书
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
党支部书记先进事迹
2014/01/17 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
北大自主招生自荐信
2015/03/04 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书