- Python Pandas 教程
- Python Pandas - 首页
- Python Pandas - 简介
- Python Pandas - 环境搭建
- Python Pandas - 基础
- Python Pandas - 数据结构介绍
- Python Pandas - 索引对象
- Python Pandas - Panel (面板)
- Python Pandas - 基本功能
- Python Pandas - 索引和数据选择
- Python Pandas - Series (序列)
- Python Pandas - Series (序列)
- Python Pandas - Series 对象切片
- Python Pandas - Series 对象属性
- Python Pandas - Series 对象的算术运算
- Python Pandas - 将 Series 转换为其他对象
- Python Pandas - DataFrame
- Python Pandas - DataFrame
- Python Pandas - 访问 DataFrame
- Python Pandas - DataFrame 对象切片
- Python Pandas - 修改 DataFrame
- Python Pandas - 从 DataFrame 中删除行
- Python Pandas - DataFrame 的算术运算
- Python Pandas - I/O 工具
- Python Pandas - I/O 工具
- Python Pandas - 使用 CSV 格式
- Python Pandas - 读取和写入 JSON 文件
- Python Pandas - 从 Excel 文件读取数据
- Python Pandas - 将数据写入 Excel 文件
- Python Pandas - 使用 HTML 数据
- Python Pandas - 剪贴板
- Python Pandas - 使用 HDF5 格式
- Python Pandas - 与 SQL 的比较
- Python Pandas - 数据处理
- Python Pandas - 排序
- Python Pandas - 重新索引
- Python Pandas - 迭代
- Python Pandas - 连接
- Python Pandas - 统计函数
- Python Pandas - 描述性统计
- Python Pandas - 处理文本数据
- Python Pandas - 函数应用
- Python Pandas - 选项和自定义
- Python Pandas - 窗口函数
- Python Pandas - 聚合
- Python Pandas - 合并/连接
- Python Pandas - 多级索引
- Python Pandas - 多级索引基础
- Python Pandas - 使用多级索引进行索引
- Python Pandas - 使用多级索引进行高级重新索引
- Python Pandas - 重命名多级索引标签
- Python Pandas - 对多级索引排序
- Python Pandas - 二元运算
- Python Pandas - 二元比较运算
- Python Pandas - 布尔索引
- Python Pandas - 布尔掩码
- Python Pandas - 数据重塑和透视
- Python Pandas - 透视表
- Python Pandas - 堆叠和取消堆叠
- Python Pandas - 熔化
- Python Pandas - 计算虚拟变量
- Python Pandas - 分类数据
- Python Pandas - 分类数据
- Python Pandas - 分类数据的排序和排列
- Python Pandas - 分类数据的比较
- Python Pandas - 处理缺失数据
- Python Pandas - 缺失数据
- Python Pandas - 填充缺失数据
- Python Pandas - 缺失值的插值
- Python Pandas - 删除缺失数据
- Python Pandas - 对缺失数据进行计算
- Python Pandas - 处理重复数据
- Python Pandas - 重复数据
- Python Pandas - 计数和检索唯一元素
- Python Pandas - 重复标签
- Python Pandas - 分组和聚合
- Python Pandas - GroupBy
- Python Pandas - 时间序列数据
- Python Pandas - 日期函数
- Python Pandas - Timedelta (时间差)
- Python Pandas - 稀疏数据结构
- Python Pandas - 稀疏数据
- Python Pandas - 可视化
- Python Pandas - 可视化
- Python Pandas - 其他概念
- Python Pandas - 警告和陷阱
- Python Pandas 有用资源
- Python Pandas - 快速指南
- Python Pandas - 有用资源
- Python Pandas - 讨论
Python Pandas - DataFrame
在 Python 的 pandas 库中,DataFrame 是一个二维带标签的数据结构,用于数据操作和分析。它可以处理不同类型的数据,例如整数、浮点数和字符串。每一列都有一个唯一的标签,每一行都有一个唯一的索引值,这有助于访问特定的行。
DataFrame 用于机器学习任务,允许用户操作和分析大型数据集。它支持诸如过滤、排序、合并、分组和数据转换等操作。
DataFrame 的特性
以下是 Pandas DataFrame 的特性:
- 列可以是不同类型。
- 大小是可变的。
- 带标签的轴(行和列)。
- 可以对行和列执行算术运算。
Python Pandas DataFrame 结构
您可以将 DataFrame 视为类似于 SQL 表格或电子表格数据表示。假设我们正在创建一个包含学生数据的数据框。
创建 pandas DataFrame
可以使用以下构造函数创建一个 pandas DataFrame:
pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)
构造函数的参数如下:
序号 | 参数和描述 |
---|---|
1 |
data data 可以采用多种形式,例如 ndarray、series、map、列表、字典、常量以及另一个 DataFrame。 |
2 |
index 用于结果框架的行标签,是可选的。如果未传递索引,则默认为 np.arange(n)。 |
3 |
columns 此参数指定列标签,可选的默认语法为 - np.arange(n)。只有在未传递索引时才为真。 |
4 |
dtype 每列的数据类型。 |
5 |
copy 此命令(或任何它是什么)用于复制数据,如果默认为 False。 |
从不同的输入创建 DataFrame
可以使用各种输入(例如)创建 pandas DataFrame:
- 列表
- 字典
- Series
- NumPy ndarrays
- 另一个 DataFrame
- 外部输入文件,例如 CSV、JSON、HTML、Excel 表格等等。
在本章的后续部分,我们将了解如何使用这些输入创建 DataFrame。
创建空 DataFrame
可以使用 DataFrame 构造函数在没有任何输入的情况下创建一个空 DataFrame。
示例
以下是创建空 DataFrame 的示例。
#import the pandas library and aliasing as pd import pandas as pd df = pd.DataFrame() print(df)
其输出如下:
Empty DataFrame Columns: [] Index: []
从列表创建 DataFrame
可以使用单个列表或列表的列表创建 DataFrame。
示例
以下示例演示如何从 Python 列表对象创建 pandas DataFrame。
import pandas as pd data = [1,2,3,4,5] df = pd.DataFrame(data) print(df)
其输出如下:
0 0 1 1 2 2 3 3 4 4 5
示例
这是另一个从 Python 列表的列表创建 Pandas DataFrame 的示例。
import pandas as pd data = [['Alex',10],['Bob',12],['Clarke',13]] df = pd.DataFrame(data,columns=['Name','Age']) print(df)
其输出如下:
Name Age 0 Alex 10 1 Bob 12 2 Clarke 13
从 ndarray/列表的字典创建 DataFrame
所有ndarrays都必须具有相同的长度。如果传递索引,则索引的长度应等于数组的长度。
如果没有传递索引,则默认情况下,索引将是 range(n),其中n是数组的长度。
示例
以下是根据 Python 字典创建 DataFrame 的示例。
import pandas as pd data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]} df = pd.DataFrame(data) print(df)
其输出如下:
Age Name 0 28 Tom 1 34 Jack 2 29 Steve 3 42 Ricky
注意 - 请观察值 0,1,2,3。它们是使用函数 range(n) 为每个值分配的默认索引。
示例
现在让我们使用数组创建一个带索引的 DataFrame。
import pandas as pd data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]} df = pd.DataFrame(data, index=['rank1','rank2','rank3','rank4']) print(df)
其输出如下:
Age Name rank1 28 Tom rank2 34 Jack rank3 29 Steve rank4 42 Ricky
注意 - 请注意,index参数为每一行分配一个索引。
从字典列表创建 DataFrame
字典列表可以作为输入数据传递以创建 DataFrame。字典键默认情况下被视为列名。
示例
以下示例显示如何通过传递字典列表来创建 DataFrame。
import pandas as pd data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}] df = pd.DataFrame(data) print(df)
其输出如下:
a b c 0 1 2 NaN 1 5 10 20.0
注意 - 请注意,NaN(非数字)附加在缺失区域。
示例
以下示例显示如何使用字典列表、行索引和列索引创建 DataFrame。
import pandas as pd data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}] #With two column indices, values same as dictionary keys df1 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b']) #With two column indices with one index with other name df2 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b1']) print(df1) print(df2)
其输出如下:
#df1 output a b first 1 2 second 5 10 #df2 output a b1 first 1 NaN second 5 NaN
注意 - 请注意,df2 DataFrame 是使用与字典键不同的列索引创建的;因此,在适当位置添加了 NaN。而 df1 是使用与字典键相同的列索引创建的,因此添加了 NaN。
从 Series 字典创建 DataFrame
Series 的字典可以传递来形成 DataFrame。结果索引是传递的所有 Series 索引的并集。
示例
这是一个例子:
import pandas as pd d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])} df = pd.DataFrame(d) print(df)
其输出如下:
one two a 1.0 1 b 2.0 2 c 3.0 3 d NaN 4
注意 - 请注意,对于 series one,没有传递标签‘d’,但在结果中,对于标签d,附加了 NaN。
示例
另一个从 Series 创建 Pandas DataFrame 的示例:
import pandas as pd data = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(data) print(df)
其输出如下:
0 a 1 b 2 c 3 d 4