Python Pandas 结构之 Series 和 DataFrame
文章目录
- 1 概述
- 1.1 Pandas 安装
- 1.2 Series 和 DataFrame 结构
- 2 Series:一维数组
- 2.1 创建 Series 对象
- 2.1.1 创建
- 2.1.2 创建并指定标签索引
- 2.1.3 创建并指定数据类型
- 2.2 访问 Series 数据
- 2.2.1 按位置索引访问
- 2.2.2 按标签索引访问
- 2.3 常用属性
- 2.3.1 index: 标签索引
- 2.3.2 values: 数据值
- 2.3.3 dtype: 数据值类型
- 2.3.4 size: 对象的大小
- 2.3.5 empty: 判断对象是否为空
- 2.4 常用方法
- 2.4.1 head(): 查看前 n 行数据
- 2.4.2 tail(): 查看后 n 行数据
- 2.4.3 isnull(): 检测是否缺失
- 2.4.4 notnull(): 检测是否不缺失
- 3 DataFrame:二维数组
- 3.1 创建 DataFrame 对象
- 3.1.1 创建
- 3.1.2 创建并指定索引标签
- 3.1.3 创建并指定数据类型
- 3.2 访问 DataFrame 数据
- 3.2.1 按行索引访问
- 3.2.2 按列索引访问
- 3.3 常用属性和方法
- 3.3.1 T:行列互换
1 概述
1.1 Pandas 安装
- 安装命令:
pip install pandas
import pandas as pd
print(f'查看 pandas 版本:{pd.__version__}')
1.2 Series 和 DataFrame 结构
2 Series:一维数组
2.1 创建 Series 对象
# 语法格式
import pandas as pd
s = pd.Series(data, index, dtype)
常用参数 | 参数描述 |
---|---|
data | 输入的数据,可以是任何类型,如:列表、字典 等 |
index | 数据索引。唯一,默认为 np.arrange(n) |
dtype | 数据类型。如果没有提供,则会自动判断得出 |
2.1.1 创建
import pandas as pd
data = [10, 20, 30, 40, 50]
s = pd.Series(data)
print(s)
# 0 10
# 1 20
# 2 30
# 3 40
# 4 50
# dtype: int64
2.1.2 创建并指定标签索引
import pandas as pd
data = [10, 20, 30, 40, 50]
index = ['a', 'b', 'c', 'd', 'e']
s = pd.Series(data, index)
print(s)
# a 10
# b 20
# c 30
# d 40
# e 50
# dtype: int64
2.1.3 创建并指定数据类型
import pandas as pd
data = [10, 20, 30, 40, 50]
s = pd.Series(data, dtype=float)
print(s)
# 0 10.0
# 1 20.0
# 2 30.0
# 3 40.0
# 4 50.0
# dtype: float64
2.2 访问 Series 数据
2.2.1 按位置索引访问
import pandas as pd
data = [10, 20, 30, 40, 50]
s = pd.Series(data)
print(s[0]) # 通过索引
print(s[0:2]) # 通过索引切片
# 10
#
# 0 10
# 1 20
# dtype: int64
2.2.2 按标签索引访问
import pandas as pd
data = [10, 20, 30, 40, 50]
index = ['a', 'b', 'c', 'd', 'e']
s = pd.Series(data, index)
print(s['a']) # 10
2.3 常用属性
2.3.1 index: 标签索引
import pandas as pd
data = [10, 20, 30, 40, 50]
s = pd.Series(data)
print(s.index)
# RangeIndex(start=0, stop=5, step=1)
2.3.2 values: 数据值
import pandas as pd
data = [10, 20, 30, 40, 50]
s = pd.Series(data)
print(s.values)
# [10 20 30 40 50]
2.3.3 dtype: 数据值类型
import pandas as pd
data = [10, 20, 30, 40, 50]
s = pd.Series(data)
print(s.dtype) # int64
2.3.4 size: 对象的大小
import pandas as pd
data = [10, 20, 30, 40, 50]
s = pd.Series(data)
print(s.size) # 5
2.3.5 empty: 判断对象是否为空
import pandas as pd
data = []
s = pd.Series(data)
print(s.empty) # True
2.4 常用方法
2.4.1 head(): 查看前 n 行数据
import pandas as pd
data = [10, 20, 30, 40, 50]
s = pd.Series(data)
print(s.head(3))
# 0 10
# 1 20
# 2 30
# dtype: int64
2.4.2 tail(): 查看后 n 行数据
import pandas as pd
data = [10, 20, 30, 40, 50]
s = pd.Series(data)
print(s.tail(3))
# 2 30
# 3 40
# 4 50
# dtype: int64
2.4.3 isnull(): 检测是否缺失
import pandas as pd
data = [10, 20, 30, 40, 50, None]
s = pd.Series(data)
print(s.isnull())
# 0 False
# 1 False
# 2 False
# 3 False
# 4 False
# 5 True
# dtype: bool
2.4.4 notnull(): 检测是否不缺失
import pandas as pd
data = [10, 20, 30, 40, 50, None]
s = pd.Series(data)
print(s.notnull())
# 0 False
# 1 False
# 2 False
# 3 False
# 4 False
# 5 True
# dtype: bool
3 DataFrame:二维数组
3.1 创建 DataFrame 对象
# 语法格式
import pandas as pd
s = pd.DataFrame(data, index, columns, dtype)
常用参数 | 参数描述 |
---|---|
data | 输入的数据,可以是任何类型,如:列表、字典 等 |
index | 行标签。唯一,默认为 np.arrange(n) |
columns | 列标签。唯一,默认为 np.arrange(n) |
dtype | 数据类型。如果没有提供,则会自动判断得出 |
3.1.1 创建
示例1:一维数组
import pandas as pd
data = [10, 20, 30, 40, 50]
df = pd.DataFrame(data)
print(df)
示例2:二维数组
import pandas as pd
data = [['张三', 10], ['李四', 20], ['王五', 30]]
columns = ['Name', 'Age']
df = pd.DataFrame(data, columns=columns)
print(df)
# Name Age
# 0 张三 10
# 1 李四 20
# 2 王五 30
3.1.2 创建并指定索引标签
import pandas as pd
data = [['张三', 10], ['李四', 20], ['王五', 30]]
index = ['a', 'b', 'c']
columns = ['Name', 'Age']
df = pd.DataFrame(data, index, columns)
print(df)
# Name Age
# a 张三 10
# b 李四 20
# c 王五 30
3.1.3 创建并指定数据类型
import pandas as pd
data = [['张三', 10], ['李四', 20], ['王五', 30]]
columns = ['Name', 'Age']
df = pd.DataFrame(data, columns=columns, dtype=str)
print(df)
# Name Age
# a 张三 10
# b 李四 20
# c 王五 30n
3.2 访问 DataFrame 数据
3.2.1 按行索引访问
import pandas as pd
data = [['张三', 10], ['李四', 20], ['王五', 30]]
columns = ['Name', 'Age']
df = pd.DataFrame(data, columns=columns)
print(df.loc[0])
# Name 张三
# Age 10
# Name: 0, dtype: object
3.2.2 按列索引访问
import pandas as pd
data = [['张三', 10], ['李四', 20], ['王五', 30]]
columns = ['Name', 'Age']
df = pd.DataFrame(data, columns=columns)
print(df['Name'])
# 0 张三
# 1 李四
# 2 王五
# Name: Name, dtype: object
3.3 常用属性和方法
常用属性和方法同 Series 类似,以下仅列举独属于 DataFrame
3.3.1 T:行列互换
- T:Transpose,转换
import pandas as pd
data = [['张三', 10], ['李四', 20], ['王五', 30]]
columns = ['Name', 'Age']
df = pd.DataFrame(data, columns=columns)
print(df.T)
# 0 1 2
# Name 张三 李四 王五
# Age 10 20 30