写代码时逻辑明确,但是被各种数据类型以及对象类型搞蒙了,补习并简单记录一下。
在进行数据分析之前需要对数据进行数据处理,其中就包含转化数据格式,可以先查看数据信息,再依据分析需求对进行处理。
编写python程序时各种数据类型以及对象的类型以及不同类型数据或对象之间的转换。
可使用python内置函数type()来查看对象的数据类型
数字类型:int(整数型)、float(浮点型)和complex(复数)
字符串:‘’ “” 有str,无法表示中文;Unicode类型,可以表示任意字符
布尔型:bool True或者Flase
注:str、bool、int和float既是数据类型,同时也是可以将其他数据转换为这些数据类型的函数:str()、bool()、int()和float()。
日期和时间:python中内建的datetime模块,提供了datetime类型,同时他们也是提取或转换日期时间类型的函数。
from datetime import datetime, date, time
# 创建对象,datetime.datetime是不可变类型,因此以下的方法都不改变原对象而是产生新的对象
dt = datetime(2022, 3, 10, 15, 59, 30)
# 提取信息
dt.day()
dt.year()
dt.month()
dt.hour()
dt.minute()
dt.second()
dt.date()
dt.time()
# 将datetime对象转换为字符串 strftime,有很多可选择的格式
datetime.strftime('%m/%d/%Y %H:%M')
# 将字符串对象转化为datetime对象
datetime.strptime('20220310', '%Y%m%d')
# 两个不同的datetime对象会产生一个datetime.timedelta类型的对象,dt1 = dt2 - dt3
列表:[] 可存放任何类型的数据,是有顺序的,可依据数据位置进行索引,可以对列表中的数据进行查找、切片、增加、修改、删除、遍历等。
元组:()元组一旦创建不可修改
字典:{'key':'value','key1':''value"}键值对的形式,以键为索引,是无序的
集合:set(['a','b','c'])调用函数传入列表,创建一个无序,不含重复元素的集合。
python内置的基本数据类型中,每个类别只有一种,为了更精确的节约内存提高性能和精度,可以使用提供多种数据类型的numpy库。numpy支持比python更多种类的数值类型,可使用numpy的内置函数的numpy.dtype()查看numpy对象的数据类型。
类型名称 |
描述 |
---|---|
bool_ |
布尔类型 |
unicode_ / unicode / str_ / str0(零非字母O) |
Unicode 字符串 |
int8 / byte |
|
int16 / short |
|
int32 / intc / int_ / long |
|
int64 / longlong / intp / int0(零非字母O) |
|
uint8 / ubyte |
|
uint16 / ushort |
|
uint32 / uintc |
|
uint64 / ulonglong / uintp / uint0(零非字母O) |
|
float16 / half |
半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位 |
float32 / single |
单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位 |
float64 / float_ / double |
双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位 |
complex64 / singlecomplex |
复数,表示双 32 位浮点数(实数部分和虚数部分) |
complex128 / complex_ / cfloat / cdouble / longcomplex / clongfloat / clongdouble |
复数,表示双 64 位浮点数(实数部分和虚数部分) |
datetime64 |
NumPy 1.7 开始支持的日期时间类型 |
timedelta64 |
表示两个时间之间的间隔 |
有时需要将numpy数据标量转化为python内置的数据表量,可以使用.item()方法,如:
# 有时候从EXCEL中导入到pandas DataFrame中的
df = pd.read_excel('数据表.xlsx')
# 查找第二行第二列数据20220311,返回的数据类型是
da = quan_sc.iloc[1, 1]
# 想通过切片的方式将年份2022提取出来,可以先将数据转化为python内置的int数据
# 再使用str()转化为字符串类型数据,然后再使用切片功能
year = str(da.item())[0:4]
python是一种面向对象的编程语言,对象拥有属性和方法,可以通过形如obj.attribute_name的语法进行调用。而类是用来构造对象的函数。在python中一切都是对象,第一部分中的各种类型的数据就是不同类型的对象,除此之外,python的内置对象还包括有异常,如Exception、ValueError、TypeError,利用open函数打开的文件对象以及如函数、类和模块等的编程单元对象。
参考文章:
<class ‘numpy.int64‘> to int_fa1c4的博客-CSDN博客_numpy.int64转int
Overview of Pandas Data Types - Practical Business Python (pbpython.com)
Pandas 数据类型概述与转换实战_Z987421的博客-CSDN博客