基于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 相关文章推荐
Django1.7+python 2.78+pycharm配置mysql数据库教程
Nov 18 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
Nov 04 Python
Python 多线程Threading初学教程
Aug 22 Python
python中将字典形式的数据循环插入Excel
Jan 16 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
Dec 28 Python
Python开发网站目录扫描器的实现
Feb 21 Python
Django基础知识 URL路由系统详解
Jul 18 Python
pycharm重命名文件的方法步骤
Jul 29 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
python算的上脚本语言吗
Jun 22 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 parse_url 一个好用的函数
2009/10/03 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
ajax 缓存 问题 requestheader
2010/08/01 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
在Python的Django框架中更新数据库数据的方法
2015/07/17 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
python获取当前文件路径以及父文件路径的方法
2019/07/10 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
黄继光的英雄事迹材料
2014/02/13 职场文书
商铺门前三包责任书
2014/07/25 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
营销经理工作检讨书
2014/11/03 职场文书
年终工作总结范文2014
2014/11/27 职场文书
写给老师的感谢信
2015/01/20 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL