基于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爬虫框架Scrapy实战之批量抓取招聘信息
Aug 07 Python
Python脚本实现Web漏洞扫描工具
Oct 25 Python
Python 正则表达式入门(中级篇)
Dec 07 Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 Python
Python使用googletrans报错的解决方法
Sep 25 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
Python pygame绘制文字制作滚动文字过程解析
Dec 12 Python
利用python绘制数据曲线图的实现
Apr 09 Python
python用opencv完成图像分割并进行目标物的提取
May 25 Python
python多线程semaphore实现线程数控制的示例
Aug 10 Python
python如何将图片转换素描画
Sep 08 Python
Flask搭建一个API服务器的步骤
May 28 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数组函数序列之in_array() - 查找数组中是否存在指定值
2011/11/07 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
详解PHP队列的实现
2019/03/14 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
玩转Koa之koa-router原理解析
2018/12/29 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
微信小程序实现授权登录
2019/05/15 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
视觉直观感受若干常用排序算法
2017/04/13 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
Pygame的程序开始示例代码
2020/05/07 Python
毕业生个人求职信范例分享
2013/12/17 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
警校毕业生自我评价
2014/04/06 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
跳槽求职信范文
2014/05/26 职场文书
服务员态度差检讨书
2014/10/28 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
学校安全管理制度
2015/08/06 职场文书
担保书格式范文
2015/09/22 职场文书
《绝招》教学反思
2016/02/20 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL