自己记录,仅供参考

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

数据常用的基本处理类型

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. 【阿迪达斯 ZX850 系列】

    [阿迪达斯zx850系列 灰蓝桔 36-44] [阿迪达斯 ZX850 新配色B34720 情侣鞋 36-44] [阿迪达斯 ZX850 新配色B34720 情侣鞋 36-44] [阿迪达斯 ZX85 ...

  2. CSS 伪类 (Pseudo-classes)

    CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪类 (Pseudo-classes)实例: 超链接 本例演示如何向文档中的超链接添加不同的颜色. 超链接 2 本例演示如何向超链接添加其他样式. ...

  3. 大数据每日干货第四天(linux基础之一目录结构与常用命令)

           为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...

  4. bzoj4730: Alice和Bob又在玩游戏

    Description Alice和Bob在玩游戏.有n个节点,m条边(0<=m<=n-1),构成若干棵有根树,每棵树的根节点是该连通块内编号最 小的点.Alice和Bob轮流操作,每回合 ...

  5. Python Q&A

    http://ilian.i-n-i.org/python-interview-question-and-answers/ http://www.geekinterview.com/Interview ...

  6. 如何用CSS实现在新窗口打开链接?

    *如何用CSS实现在新窗口打开链接? <style type="text/css"> <!-- .target2 a:active {test:expressio ...

  7. 转mysql 多表 update sql语句总结

    mysql 多表 update 有几种不同的写法. 假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price:另外一张表是ProductPrice表,我们要将ProductP ...

  8. 添加AppWidget功能

    要为程序添加AppWidget 1 首先要建立一个继承于AppWidgetProvider的类 MyWidget public class MyWidget extends AppWidgetProv ...

  9. spark-shell和scala错误

    运行spark-shell 或者scala命令,出现以下错误: Welcome to Scala version 2.10.6 (Java HotSpot(TM) 64-Bit Server VM, ...

  10. Maven基础笔记,原理

    1.什么是Maven ①Maven是一款实现自动化构建的工具软件. ②构建:从源程序→程序的执行 清理→编译→测试→报告→打包→部署→执行 ③构建工具:Make→Ant→Maven→Gradle... ...