自己记录,仅供参考

在数据处理时经常会遇到数据类型不匹配的事情,为了方便查看各种存储方式中数据类型的改变。我把一些自己常用的整理方式记录下来,希望可以为以后数据类型的处理工作提供便利。

数据常用的基本处理类型

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 数据处理中各种存储方式里数据类型的转换的更多相关文章

  1. C语言中浮点数在内存中的存储方式

    关于多字节数据类型在内存中的存储问题 //////////////////////////////////////////////////////////////// int ,short 各自是4. ...

  2. <转载>浅谈C/C++的浮点数在内存中的存储方式

    C/C++浮点数在内存中的存储方式 任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100.则在Intel CPU架构的系统中 ...

  3. QList介绍(QList比QVector更快,这是由它们在内存中的存储方式决定的。QStringList是在QList的基础上针对字符串提供额外的函数。at()操作比操作符[]更快,因为它不需要深度复制)非常实用

    FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做项目时,需要用到QList来存储一组点.为此,我对QList类的说明进行了如下翻译. QL ...

  4. Float在内存中的存储方式及IEC61131处理

    Float在内存中的存储方式及IEC61131处理 1,fp32(32bits float)类型数据在存储器中占用4Bytes存储,且遵循IEEE-754标准: 一个浮点数分三部分组成: 符号位s(1 ...

  5. SQL 把表中字段存储的逗号隔开内容转换成列表形式

    原文:[原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式 我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ...

  6. iOS中的存储方式

    1.Plist 1.1 了解沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其它文件系统隔离.应用必须呆在自己的沙盒里.其它应用不能访问该沙盒. 一个程序中所有的非代码文件都可以 ...

  7. 数据在内存中的存储方式( Big Endian和Little Endian的区别 )(x86系列则采用little endian方式存储数据)

    https://www.cnblogs.com/renyuan/archive/2013/05/26/3099766.html 1.故事的起源 “endian”这个词出自<格列佛游记>.小 ...

  8. C/C++浮点数在内存中的存储方式

    一.内存表示 任何数据在内存中都是以二进制的形式存储的,浮点数的表示是把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示,数的小数点位置随比例因子的不同而在一定范围内自由浮动.如下图是3 ...

  9. float和double在内存中的存储方式

    本文转载于:http://wenku.baidu.com/link?url=ARfMiXVHCwCZJcqfA1gfeVkMOj9RkLlR9fIexbgs9gDdV8rIS48A1_xe1y6YgX ...

随机推荐

  1. PostgreSQL的权限查询

    查看哪些用户对表sns_log_member_b_aciton有哪些权限: sns_log=> \z sns_log_member_b_aciton Access privileges Sche ...

  2. REPEATABLE-READ下批量更新数据的问题

    1. 当前mysql的隔离级别 REPEATABLE-READ 2. 用户读取的时候或者更改的时候(通过事务)   会对 更改的数据加行锁 和 gap锁 , 最终更改完毕后 去掉锁. (行锁表示这条数 ...

  3. [linux] linux shell 将解析完毕的文件备份至其他目录

    #!/bin/bash # #将解析完毕的日志备份到别的目录 # #日志目录 rjPath=`ls /home/bgftp/orj` #当前时间戳 cur=`date +%s` #一小时 chtm=3 ...

  4. .net解决程序集版本冲突的方法

    以log4net为例,分为两种情况 1.不同version,相同publicKeyToken 在bin里放较新版本的dll 并在web|app.config的<configuration> ...

  5. Ubuntu setup Static IP Address

    Change Ubuntu Server from DHCP to a Static IP Address If the Ubuntu Server installer has set your se ...

  6. Files 的值“ < < < < < < < .mine”无效。路径中具有非法字符。

    出现这个问题的原因是,用svn时,发生了冲突.解决方法:先解决代码冲突,然后在你的工程OBJ/DEBUG目录下,找到 工程名.csproj.FileListAbsolute.txt的文件打开并删除含有 ...

  7. PowerProfile.java与power_profile.xml

    转载自http://blog.csdn.net/green1900/article/details/42427871 现在诸多关于电池管理的应用做的极其绚烂,可实现如耗电应用排行.剩余时间计算.关闭耗 ...

  8. 黄聪:日租VPS中FileZilla_Server配置方法

    1.关闭VPS中IIS的FTP服务 2.FileZilla_Server 监听端口 21 3.FTP客户端端口为11311(看服务商给出的)

  9. .NET 平台下的插件化开发内核(Rabbit Kernel)-转

    什么是RabbitHub? RabbitHub 是专门针对 .NET 平台所设计.研发的一套相对完整的插件开发框架,它是由一个内核两大框架多个组件及一系列的开发时支持而构成. RabbitHub 架构 ...

  10. CentOS下安装Tomcat7

    1.检查java版本信息 #java -version java version "1.7.0_65" OpenJDK Runtime Environment (rhel-2.5. ...