基于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实现的ini文件操作类分享
Nov 20 Python
Python中的__SLOTS__属性使用示例
Feb 18 Python
让Django支持Sql Server作后端数据库的方法
May 29 Python
python TKinter获取文本框内容的方法
Oct 11 Python
Python UnboundLocalError和NameError错误根源案例解析
Oct 31 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
Jan 07 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 Python
Anaconda+vscode+pytorch环境搭建过程详解
May 25 Python
python使用自定义钉钉机器人的示例代码
Jun 24 Python
Python如何读写字节数据
Aug 05 Python
python解决OpenCV在读取显示图片的时候闪退的问题
Feb 23 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创建PDF中文文档
2006/10/09 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
PHP生成树的方法
2015/07/28 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
php简单统计在线人数的方法
2016/05/10 PHP
PHP 自动加载的简单实现(推荐)
2016/08/12 PHP
PHP运行模式汇总
2016/11/06 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
2013/04/22 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
2017/04/11 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
JS 事件机制完整示例分析
2020/01/15 Javascript
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
python的Template使用指南
2014/09/11 Python
详解在Python和IPython中使用Docker
2015/04/28 Python
python矩阵的转置和逆转实例
2018/12/12 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
python实现简单的购物程序代码实例
2020/03/03 Python
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
自我评价正确写法范文
2013/12/10 职场文书
质检部职责
2013/12/28 职场文书
小学生开学感言
2014/02/28 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
爱国主义电影观后感
2015/06/18 职场文书
图书借阅制度范本
2015/08/06 职场文书
如何正确理解python装饰器
2021/06/15 Python