安装pandas库:pip install pandas
导入该库时只要不报错就说明安装成功。
一、Series数据结构
1. Series创建
三种方式 - 列表、数组、字典
import pandas as pd
import numpy as np
# Series创建,输出时:左边索引,右边数值
# 1. 通过list创建
print('-'*20 + "1. 通过list创建"+ '-'*20)
s1 = pd.Series([1,2,3,4,5])
print(s1)
type(s1)
# 2. 通过数组创建
print('-'*20 + "2. 通过数组创建"+ '-'*20)
arr1 = np.arange(1,6)
print(arr1)
s2 = pd.Series(arr1)
print(s2)
# 自己指定索引形式
print('-'*20 + "自己指定索引形式"+ '-'*20)
# 索引长度和数据长度必须相同
s2 = pd.Series(arr1,index=['a','b','c','d','e'])
print(s2)
# 查看值和索引
print("s1.values = ")
print(s1.values)
print("s1.index = ")
print(s1.index)
# 3. 通过字典创建
print('-'*20 + "3. 通过字典创建"+ '-'*20)
dict = {'name':'李宁','age':18,'class':'三班'}
print(dict)
# 输出时是无序的
# s3 = pd.Series(dict)
# 指定输出顺序,如果这个索引不存在,则会输出空
s3 = pd.Series(dict,index=['age','name','class','sex'])
print(s3)
输出:
--------------------1. 通过list创建--------------------
0 1
1 2
2 3
3 4
4 5
dtype: int64
--------------------2. 通过数组创建--------------------
[1 2 3 4 5]
0 1
1 2
2 3
3 4
4 5
dtype: int32
--------------------自己指定索引形式--------------------
a 1
b 2
c 3
d 4
e 5
dtype: int32
s1.values =
[1 2 3 4 5]
s1.index =
RangeIndex(start=0, stop=5, step=1)
--------------------3. 通过字典创建--------------------
{'name': '李宁', 'age': 18, 'class': '三班'}
age 18
name 李宁
class 三班
sex NaN
dtype: object
2. Series基本用法
# 2.1 isnull 和 notnull 检查缺失值
print(s3.isnull()) # 判断是否为空,空就是True
print(s3.notnull()) # 判断是否不为空,非空True
# 2.2通过索引获取数据
print(s3.values)
print(s3.index)
# 下标
print(s3[1])
# 标签
print(s3['age'])
# 选取多个
# print(s3[[1,3]])
print(s3[['name','age']])
# 索引切片
print("索引切片:")
print(s3[0:2]) # 不包含第三个编号为2的索引值
# 标签切片 - 包含末端数据
print("标签切片:")
print(s3['age':'class']) # 包含class这个索引对应的值
#布尔索引
print("s2[s2>3] = ")
print(s2[s2>3])
# 2.3 索引与数据的对应关系不被运算结果影响
print("s2*2 = ")
print(s2*2)
print("s2>2 = ")
print(s2>2)
s2.name = 'temp' # 对象名(也就是s2的名字)
s2.index.name = 'year' # 对象索引名(也就是s2索引的名字)
print(s2)
print(s2.head()) # 默认显示前5行
print(s2.head(3)) # 设置显示前3行
print(s2.tail()) # 默认显示后5个
print(s2.tail(2)) # 设置显示后2个
输出:
age False
name False
class False
sex True
dtype: bool
age True
name True
class True
sex False
dtype: bool
[18 '李宁' '三班' nan]
Index(['age', 'name', 'class', 'sex'], dtype='object')
李宁
18
name 李宁
age 18
dtype: object
索引切片:
age 18
name 李宁
dtype: object
标签切片:
age 18
name 李宁
class 三班
dtype: object
s2[s2>3] =
year
d 4
e 5
Name: temp, dtype: int32
s2*2 =
year
a 2
b 4
c 6
d 8
e 10
Name: temp, dtype: int32
s2>2 =
year
a False
b False
c True
d True
e True
Name: temp, dtype: bool
year
a 1
b 2
c 3
d 4
e 5
Name: temp, dtype: int32
year
a 1
b 2
c 3
d 4
e 5
Name: temp, dtype: int32
year
a 1
b 2
c 3
Name: temp, dtype: int32
year
a 1
b 2
c 3
d 4
e 5
Name: temp, dtype: int32
year
d 4
e 5
Name: temp, dtype: int32
二、DataFrame
DataFrame是一个表格型数据结构,它含有一组有序的列,每列可以是不同类型的值。DataFrame既有行索引也有列索引,它可以被看做是由Series组成的字典(共用一个索引),数据是以二维结构存放的。
1. DataFrame构建
- 字典类:
数组、列表或元组构成的字典构造dataframe
Series构成的字典构造dataframe
字典构成的字典构造dataframe - 列表类:
2D ndarray 构造dataframe
字典构成的列表构造dataframe
Series构成的列表构造dataframe
2. DataFrame的基本用法
2.1 T转置
2.2 通过列索引获取列数据(Series类型)
2.3 增加列数据
2.4 删除列
三、Pandas的索引操作