Python 从入门到实战43(Pandas数据结构)
我们的目标是:通过这一套资料学习下来,可以熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。
上篇文章我们学习了NumPy数组操作的相关基础知识。今天学习一下pandas数据处理中的数据结构。
1、pandas简介
Pandas 是一个开源的第三方库,具有强大的数据处理和分析能力的库。主要为python语言提供了高性能、已于使用的数据结构和数据分析工具。
使用前需要先安装:
python -m pip install pandas –target=第三方库路径
import pandas #使用前导入第三方库
2、pandas 数据结构
pandas 的数据结构分两个核心,分别是Series、DataFrame。其中Series是一维数组,和Numpy 中的一维数组类似。这两种一维数组与python中基本数据结构list相近。Series可以保存多种数据类型的数据。如布尔值、字符串、数字类型等。DataFrame是一种以表格形式的数据结构类似与Excel表格一样,是一种二维的表格型数据结构。
3、Series 对象
1)创建Series对象
在创建Series对象时,只需要将数组形式的数据传入Series()构造函数中即可。
举例说明:
#创建Series 对象数据并输出
data = ['a','b','c','d'] #创建数据数组
series = pd.Series(data) #创建Series 对象
print("查看创建的Series 对象:")
print(series) #输出Series 对象内容
输出结果:
查看创建的Series 对象:
0 a
1 b
2 c
3 d
dtype: object
另外,在创建Series 对象时,也可以指定索引。
举例如下:
#创建Series 对象数据并输出,指定索引
data = ["A",'B','C']
index = ["01","02","03"]
series = pd.Series(data,index=index) #创建Series 对象,指定索引
print(series)
输出结果:
01 A
02 B
03 C
dtype: object
2)访问数据
a、可以单独访问索引数组或者元素数组
#创建Series 对象数据并输出,指定索引
data = ["A",'B','C']
index = ["01","02","03"]
series = pd.Series(data,index=index) #创建Series 对象,指定索引
print(series)
print("访问索引数组:",series.index) #输出索引数组
print("访问元素数组:",series.values) #输出元素数组
执行结果:
访问索引数组: Index(['01', '02', '03'], dtype='object')
访问元素数组: ['A' 'B' 'C']
b、可以获取指定下标的数组元素,通过“Series 对象[下标]”的方式
#创建Series 对象数据并输出,指定索引
data = ["A",'B','C']
index = ["01","02","03"]
series = pd.Series(data,index=index) #创建Series 对象,指定索引
print(series)
#print("获取对应下标的数组元素:",series[1]) #输出数组元素
print("获取对应索引的数组元素:",series["01"]) #输出数组元素
print("访问索引数组:",series.index) #输出索引数组
print("访问元素数组:",series.values) #输出元素数组
执行结果:
获取对应索引的数组元素: A
c、获取多个下标对应的Series对象
#创建Series 对象数据并输出,指定索引
data = ["A",'B','C']
index = ["01","02","03"]
series = pd.Series(data,index=index) #创建Series 对象,指定索引
print(series)
print("获取对应索引的数组多个元素:\n",series[0:3]) #输出数组元素
print("获取对应索引的数组多个元素:\n",series[["01","02"]]) #输出数组元素
执行结果:
获取对应索引的数组多个元素:
01 A
02 B
03 C
dtype: object
获取对应索引的数组多个元素:
01 A
02 B
dtype: object
3)修改元素值
通过指定下标或者指定索引的方式来实现修改元素值。
举例如下:
#创建Series 对象数据并输出,指定索引
data = ["A",'B','C']
index = ["01","02","03"]
series = pd.Series(data,index=index) #创建Series 对象,指定索引
print(series)
#修改索引"01"的元素值
series["01"] = "E"
print(series) #输出修改后的数组
执行结果:
01 E
02 B
03 C
dtype: object
4、DataFrame 对象
在创建DataFrame 对象时,需要通过字典来创建DataFrame对象。其中,每列的名称为键,而每个键对应的是一个数组,这个数组作为值。
1)创建DataFrame对象
实例如下:
#创建DataFrame对象,输出对应的数据
data ={"M":[1,2,3,4],
"N":[10,20,30,40],
"O":[100,200,300,400]
} #数组放入字典
data_frame = pd.DataFrame(data) #创建DataFrame对象,字典的数据放入对象中,键为每列的名称
print(data_frame) #输出DataFrame对象的内容
执行结果:
M N O
0 1 10 100
1 2 20 200
2 3 30 300
3 4 40 400
2)创建DataFrame对象-指定索引
参考上面例子的执行结果,没有指定索引时默认是:0-n
举例说明:
#创建DataFrame对象时指定索引,输出对应的数据
data ={"M":[1,2,3,4],
"N":[10,20,30,40],
"O":[100,200,300,400]
} #数组放入字典
index = ["a","b","c",'d']
data_frame = pd.DataFrame(data,index=index) #创建DataFrame对象时指定索引,字典的数据放入对象中,键为每列的名称
print(data_frame) #输出DataFrame对象的内容
执行结果:
M N O
a 1 10 100
b 2 20 200
c 3 30 300
d 4 40 400
可以看到索引值是指定值:a-d
3)创建DataFrame对象-指定对应列的值
举例说明:我们上面讲到的例子是3列,假如我们只需要其中两列
#创建DataFrame对象时指定索引,输出对应的数据
data ={"M":[1,2,3,4],
"N":[10,20,30,40],
"O":[100,200,300,400]
} #数组放入字典
index = ["a","b","c",'d']
# 创建DataFrame对象时指定索引,字典的数据指定的列放入对象中,键为每列的名称
data_frame = pd.DataFrame(data,index=index,columns=["M","N"])
print(data_frame) #输出DataFrame对象的内容
执行结果:
M N
a 1 10
b 2 20
c 3 30
d 4 40
今天先写学习到这里了,每天进步一点点。明天也要加油啊!