基于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实现中文分词FMM算法实例
Jul 10 Python
Python中的条件判断语句基础学习教程
Feb 07 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
influx+grafana自定义python采集数据和一些坑的总结
Sep 17 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
python实现视频读取和转化图片
Dec 10 Python
解决python 读取 log日志的编码问题
Dec 24 Python
如何在Python对Excel进行读取
Jun 04 Python
python中如何设置代码自动提示
Jul 15 Python
Selenium python时间控件输入问题解决方案
Jul 22 Python
python下载的库包存放路径
Jul 27 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
easyui的tabs update正确用法分享
2014/03/21 PHP
php jsonp单引号转义
2014/11/23 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
javascript简易画板开发
2020/04/12 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
python3连接MySQL数据库实例详解
2018/05/24 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
python 如何对logging日志封装
2020/12/02 Python
python实现KNN近邻算法
2020/12/30 Python
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
英国名牌男装店:Standout
2021/02/17 全球购物
武汉英思工程科技有限公司–ORACLE面试测试题目
2012/04/30 面试题
网站设计师的岗位职责
2013/11/21 职场文书
教师正风肃纪剖析材料
2014/10/20 职场文书
企业团队精神心得体会
2016/01/19 职场文书
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android