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 ...
随机推荐
- CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系
CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...
- linux centos6.5支持ipv6
1.用ifconfig查看有没有inet6 addr,我的这个已经支持了,如果不支持请看第二步. 2.vim /etc/sysconfig/network 把这句改成:NETWORKING_IPV6= ...
- 自己动手制作CSharp编译器
在你喜欢的位置(如F盘根目录)新建一个文件夹,并命名为“CSharp开发环境”.找到或下载C#编译器组件(csc.exe和cscui.exe),并放在先前建立的文件夹中.该组件的一般位置在C盘的.NE ...
- [2014.01.27]wfGifAnimator 动画GIF组件 3.0
组件支持设置GIF帧延时和获取GIF的帧延迟. 组件支持添加或插入或更新帧(支持bmp/jpg/gif/wmf/emf/ico格式).删除帧.清空帧操作. 组件支持GIF动画缩放大小. 组件支持绘制线 ...
- 11、java中的模板方法设计模式
/* 需求:获取一段程序运行的时间. 原理:获取程序开始和结束的时间并相减即可. 获取时间:System.currentTimeMillis(); 当代码完成优化后,就可以解决这类问题. 这种方式,模 ...
- Rails ---> routes.rb 详解
理解路由的目的 看懂routes.rb文件中的代码 使用经典的hash风格或者现在比较流行的Restful风格构造你自己的路径 断定一个路径会映射到哪一个controller和action 路由的双重 ...
- sip协议注册时response值的计算方法
sip注册时有四个步骤, 1.客户端向服务端发送不带Authorization字段的注册请求 2.服务端回401,在回复消息头中带WWW_Authorization 3.客户端向服务端发送带Autho ...
- Linux的一些常用快捷键和基本命令
*******1.在Linux中,只有/能够当盘符,/首先要分配给系统盘所在分区*******2.swap交换分区,相当于Windows下的虚拟内存,用来模拟内存,当内存不够用时,就会使用交换分区.其 ...
- centos6.5 安装mysql 的过程
Linux中使用最广泛的数据库就是MySQL,使用在线yum的方式安装的版本落后MySQL网站好几个小版本, 所以折腾了几个星期,终于在CentOS 装好了mysql5.6,装完之后,对整个linux ...
- Silverlight 缓存控制策略
通常我们用html或asp.net页面承载Silverlight包,由于浏览器缓存机制的存在,使得你的应用更新时,客户见到往往是旧版的程序,而完全禁止缓存,每次打开页面都要重新下载xap,对于体积较大 ...