python 数据处理中各种存储方式里数据类型的转换
自己记录,仅供参考
在数据处理时经常会遇到数据类型不匹配的事情,为了方便查看各种存储方式中数据类型的改变。我把一些自己常用的整理方式记录下来,希望可以为以后数据类型的处理工作提供便利。
数据常用的基本处理类型
1、字符串 2、布尔类型 3、整数 4、浮点数 5、日期
(1)单个变量的数据类型转换及查看
单个变量的类型查看
In [82]: %paste
a=''
type(a) ## -- End pasted text --
Out[82]: str
单个变量的类型转换
数值转字符串
In [84]: a=''
...: type(a)
...:
Out[84]: str In [85]: a=float(a)
...: type(a)
...:
Out[85]: float
字符串转日期及日期运算结果转为数字
In [96]: from datetime import timedelta
...: import time,datetime
...: changetime1='2016-12-11'
...: changetime2='2016-12-14'
...: t1= time.strptime(changetime1,"%Y-%m-%d")
...: y,m,d = t1[0:3]
...: change1=datetime.date(y,m,d)
...: t2= time.strptime(changetime2,"%Y-%m-%d")
...: y,m,d = t2[0:3]
...: change2=datetime.date(y,m,d)#转成日期格式
...: tianshu=(change2-change1).days#转成数值格式
...: print(type(changetime1))
...: print(type(change1))
...: print(type(change2-change1))
...: print(type(tianshu))
...:
<class 'str'>
<class 'datetime.date'>
<class 'datetime.timedelta'>
<class 'int'>
(2) numpy内数据类型的转变及查看
numpy类型
| 类型 | 类型代码 | 说明 |
| int8,uint8 | i1,u1 | 有符号和无符号的8位(1个字节)整型 |
| int16,uint16 | i2,u2 | 有符号和无符号的16位(2个字节)整型 |
| int32,uint32 | i4,u4 | 有符号和无符号的32位(4个字节)整型 |
| int64,uint64 | i8,u8 | 有符号和无符号的64位(8个字节)整型 |
| float16 | f2 | 半精度浮点数 |
| float32 | f4或f | 标准的单精度浮点数。与c的float兼容 |
| float64 | f8或d | 标准的双精度浮点数。与c的double和python的float对象兼容 |
| float128 | f16或g | 扩展精度浮点数 |
| complex64,complex128 | c8,c16 | 分别用两个32位,64位或128位浮点数表示的 |
| complex256 | c32 | 复数 |
| bool | ? | 存储true和false值的布尔类型 |
| obiect | O | python对象类型 |
| string | S | 固定长度的字符串类型(每个字符1个字节) |
| unicode | U | 固定长度的uincode类型(字数由平台决定)跟字符创的定义方式一样(如U10) |
查看numpy的数据类型
In [99]: import numpy as np
...: arr=np.array([1,2,3,4,5])
...: arr.dtype#查看数据类型
...:
Out[99]: dtype('int32')
In [100]: arr1=np.array(['','','','',''])
...: arr1.dtype
...:
Out[100]: dtype('<U1')#unicode类型
通过ndaary的astype方式显示地转换dtype
In [101]: arr1=np.array(['','','','',''])
...: print(arr1.dtype)
...: arr2=arr1.astype(int)
...: print(arr2.dtype)
...:
<U1
int32 In [102]: arr2
Out[102]: array([1, 2, 3, 4, 5])#将unicode类型转为int32 #转为字符串
arr3=arr2.astype(np.str)
print(arr3.dtype) ## -- End pasted text --
<U11
(3)dataframe内数据类型的查看及更改
查看dataframe的数据类型
In [110]: %paste
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
data={'state':['ni','hao','a'],
'year':[2111,3232,4546],
'age':['','','']}
frame=DataFrame(data)
frame.dtypes#查看数据类型 ## -- End pasted text --
Out[110]:
age object
state object
year int64
dtype: object
更改dataframe的数据类型
In [111]: %paste
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
data={'state':['ni','hao','a'],
'year':[2111,3232,4546],
'age':['','','']}
frame=DataFrame(data)
frame['age']=frame['age'].astype('int')#将age转为int类型并替换原来的数据
frame.dtypes ## -- End pasted text --
Out[111]:
age int32
state object
year int64
dtype: object
python 数据处理中各种存储方式里数据类型的转换的更多相关文章
- C语言中浮点数在内存中的存储方式
关于多字节数据类型在内存中的存储问题 //////////////////////////////////////////////////////////////// int ,short 各自是4. ...
- <转载>浅谈C/C++的浮点数在内存中的存储方式
C/C++浮点数在内存中的存储方式 任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100.则在Intel CPU架构的系统中 ...
- QList介绍(QList比QVector更快,这是由它们在内存中的存储方式决定的。QStringList是在QList的基础上针对字符串提供额外的函数。at()操作比操作符[]更快,因为它不需要深度复制)非常实用
FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做项目时,需要用到QList来存储一组点.为此,我对QList类的说明进行了如下翻译. QL ...
- Float在内存中的存储方式及IEC61131处理
Float在内存中的存储方式及IEC61131处理 1,fp32(32bits float)类型数据在存储器中占用4Bytes存储,且遵循IEEE-754标准: 一个浮点数分三部分组成: 符号位s(1 ...
- SQL 把表中字段存储的逗号隔开内容转换成列表形式
原文:[原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式 我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ...
- iOS中的存储方式
1.Plist 1.1 了解沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其它文件系统隔离.应用必须呆在自己的沙盒里.其它应用不能访问该沙盒. 一个程序中所有的非代码文件都可以 ...
- 数据在内存中的存储方式( Big Endian和Little Endian的区别 )(x86系列则采用little endian方式存储数据)
https://www.cnblogs.com/renyuan/archive/2013/05/26/3099766.html 1.故事的起源 “endian”这个词出自<格列佛游记>.小 ...
- C/C++浮点数在内存中的存储方式
一.内存表示 任何数据在内存中都是以二进制的形式存储的,浮点数的表示是把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示,数的小数点位置随比例因子的不同而在一定范围内自由浮动.如下图是3 ...
- float和double在内存中的存储方式
本文转载于:http://wenku.baidu.com/link?url=ARfMiXVHCwCZJcqfA1gfeVkMOj9RkLlR9fIexbgs9gDdV8rIS48A1_xe1y6YgX ...
随机推荐
- 阿里云 crp kelude远程部署tomcat8 重启tomcat脚本
部署包路径:/usr/local/tomcat/webapps 应用服务启动脚本路径:/usr/local/tomcat/bin/restart.sh 部署授权帐号:tomcat restart.sh ...
- PHP MVC简单介绍,对PHP当前主流的MVC做了一个总结
东抄西抄,对PHP当前主流的MVC做了一个总结PPT. 希望对初学者有点帮助! PHP MVC初步.ppt
- 学习地址(oraclemysqllinux)
1.安装配置 http://blog.chinaunix.net/uid-27126319-id-3466193.htmlhttp://www.cnblogs.com/gaojun/archive/2 ...
- React Native 网络请求
如下面的Code,分别介绍了GET,POST,以及使用XMLHttpRequest的Get请求. import React, { Component } from 'react'; import { ...
- spring事务传播机制与隔离级别、通知类别
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为, 它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播: 事务传播行为类型 说明 PROPAGATIO ...
- 《winform窗体应用程序》----------简易记事本
首先先给大家发表几张图片,描述一下记事本程序要实现的功能以及界面设计. 以上这些就是简易记事本的的主界面设计. 下面我们来做一些简单的讲解: 1.使用MenuStrip控件来实现菜单栏的基本设计. 在 ...
- 【FTP】FTP文件上传下载-支持断点续传
Jar包:apache的commons-net包: 支持断点续传 支持进度监控(有时出不来,搞不清原因) 相关知识点 编码格式: UTF-8等; 文件类型: 包括[BINARY_FILE_TYPE(常 ...
- javascript判断某种元素是否进入可视区域
判断是否在指定的可视区域内,先用最简单的方式,比如整个页面为可视区域 找到几个关键因素: sTop= $(window).scrollTop(); //滚动条距顶部的高度 clientHeight= ...
- [Linux] 关于Centos6中ulimit nproc用户进程数的限制
一.缘由: 在启动mongodb的时候,有Warning提示soft rlimits too low,就是用户使用进程数过小,遂调高系统资源关于用户最大进程数的限制ulimit -u. 先暂时使设置生 ...
- .NET加密方法
SHA1加密: string[] ArrTmp = { Token, timestamp, nonce }; Array.Sort(ArrTmp);//字典排序 string tmpStr = str ...