基于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 相关文章推荐
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
python控制台显示时钟的示例
Feb 24 Python
Django集成百度富文本编辑器uEditor攻略
Jul 04 Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
Nov 21 Python
python字符串编码识别模块chardet简单应用
Jun 15 Python
python数据抓取分析的示例代码(python + mongodb)
Dec 25 Python
在pycharm上mongodb配置及可视化设置方法
Nov 30 Python
python 提取key 为中文的json 串方法
Dec 31 Python
Python爬虫爬取煎蛋网图片代码实例
Dec 16 Python
Python读写操作csv和excle文件代码实例
Mar 16 Python
Python 字典中的所有方法及用法
Jun 10 Python
Python3爬虫中pyspider的安装步骤
Jul 29 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
sql注入与转义的php函数代码
2013/06/17 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
PHP自动识别字符集并完成转码详解
2013/08/02 PHP
php使用curl打开https网站的方法
2015/06/17 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
在javascript中对于DOM的加强
2013/04/11 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
Python实现CET查分的方法
2015/03/10 Python
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
Tensorflow中使用tfrecord方式读取数据的方法
2018/06/19 Python
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
Python正则表达式如何匹配中文
2020/05/27 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
乐观大学生的自我评价
2014/01/10 职场文书
酒店管理求职信范文
2014/04/06 职场文书
同居协议书范本
2014/04/23 职场文书
工作建议书范文
2014/05/13 职场文书
离婚财产处理协议书
2014/09/30 职场文书
骨干教师考核评语
2014/12/31 职场文书
公司租车协议书
2015/01/29 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
天气温馨提示语
2015/07/14 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
辞职信怎么写?
2019/05/21 职场文书
教你使用Pandas直接核算Excel中快递费用
2021/05/12 Python