- pandas是python第三方库,提供高性能易用数据类型和分析工具
- pandas基于numpy实现,常与numpy和matplotlib一同使用
- pandas中有两大核心数据结构:Series(一维数据) 和 Dataframe(多特征数据)
>> 01 Series(一维数据)
- Series是一种类似于一维数组的对象,它由一维数组(各种numpy数据类型)以及一组与之相关的数据标签(即索引)组成;
- Seriesd的数据结构为“键值对”的形式,“键”可以重复;
- Series的创建:①使用Python数组创建 ②使用numpy数组创建 ③使用python字典创建
import pandas as pd
import numpy as np
pds1 = pd.Series([99, 98], index=['xiaoming', 'xiaohong'])
print(pds1) # 使用Python数组创建
pds2 = pd.Series(np.arange(3,6))
print(pds2) # 使用numpy数组创建
pds3 = pd.Series({'name': 'xiaoming', 'age': 21, 'score': 99})
print(pds3) # 使用python字典创建
# 注意:与字典不同的是:Series允许索引重复
- Series的字符串表现形式为:索引在左边,值在右边
import pandas as pd pds = pd.Series([1, 2, 3, 4]) print(pds)
- 如果没有为数据指定索引,则自动创建一个0到N-1(N为数据的长度)的整数型索引
- 可以通过Series的values和index属性获取其数组表示形式和索引对象
import pandas as pd
pds = pd.Series([1, 2, 3, 4])
print('values',pds.values)
print('index',pds.index)
- 与普通numpy数组相比,可以通过索引的方式选取Series中的单个或一组值
import pandas as pd pds = pd.Series([1, 2, 3, 4]) print(pds[0]) # 读取第一个值 pds[1] = 10 # 更改第二个值 print(pds[[1,2]])
- Series中最重要的一个功能是:在算术运算中自动对齐不同索引的数据
import pandas as pd
stu1 = pd.Series({'math': 100, 'physics': 98, 'chemistry': 90})
stu2 = pd.Series({'math': 95, 'physics': 96, 'chemistry': 94})
print(stu1 + stu2)
>> 02 Dataframe(多特征数据)
- Dataframe是一个表格型的数据结构,含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)
- Dataframe既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)
- 跟其他类似的数据结构相比,Dataframe中面向行和面向列的操作基本上是平衡的
- Dataframe中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构)
import pandas as pd
data = {'name': ['A1', 'A2', 'A3'], 'score': [100, 99, 98]}
fr = pd.Dataframe(data)
print(fr)
# 可按照指定的列顺序创建
fr = pd.Dataframe(data, columns=['score', 'name'])
print(fr)
- 可以给Dataframe创建或修改列的值
import pandas as pd
data = {'name': ['A1', 'A2', 'A3'], 'score': [100, 99, 98]}
fr = pd.Dataframe(data)
# 新增某列的值
fr['age'] = [21,22,20]
print(fr)
# 修改某一个值
fr.loc[1, 'age'] = 30
print(fr)
- values属性会以二维ndarray的形式返回Dataframe中的数据
import pandas as pd
data = {'name': ['A1', 'A2', 'A3'], 'score': [100, 99, 98]}
fr = pd.Dataframe(data)
print(fr.values)



