如何在 Python 中创建 DataFrame?

2025年03月17日 | 阅读 9 分钟

DataFrame 是一个二维数据集合。它是一种表格形式的数据结构。数据集按行和列排列;我们可以在 DataFrame 中存储多个数据集。我们可以执行各种算术运算,例如添加列/行选择以及在 DataFrame 中添加列/行。

在 Python 中,DataFrame 是 Pandas 库的关键组成部分,它是一个全面的二维数据容器。它类似于表格,清晰地封装了数据,使用行和列,每一行和每一列都有一个独特的索引。它的多功能性允许在列中容纳各种数据类型,从而在处理复杂数据集时提供了灵活性。

Pandas DataFrame 为用户提供了广泛的功能。从使用字典或其他数据结构创建结构化数据,到使用强大的索引进行无缝数据访问,Pandas 都可以轻松实现数据操作。该库提供了一个直观的界面,用于执行诸如根据条件过滤行、按组聚合数据以及轻松执行统计分析等操作。

我们可以从外部存储导入 DataFrame;这些存储可以引用为 SQL 数据库、CSV 文件和 Excel 文件。我们还可以使用列表、字典以及字典列表等。

在本教程中,我们将学习多种创建 DataFrame 的方法。让我们来了解这些不同的方法。

首先,我们需要将 pandas 库安装到 Python 环境中。

空 DataFrame

我们可以创建一个基本的空 DataFrame。需要调用 DataFrame 构造函数来创建 DataFrame。让我们来了解下面的示例。

示例 -

输出

Empty DataFrame
Columns: []
Index: []

方法 - 2:使用列表创建 DataFrame

我们可以使用单个列表或列表的列表来创建 DataFrame。让我们来了解下面的示例。

示例 -

输出

0        Java
1      Python
2           C
3         C++
4   JavaScript
5       Swift
6          Go

说明

  • 导入 Pandas:import pandas as pd 导入 Pandas 库,并简称为 pd。
  • 创建列表:lst 是一个包含表示编程语言的字符串值的列表。
  • DataFrame 创建:pd.DataFrame(lst) 从列表 lst 构建 DataFrame。当然,当提供单个列表时,Pandas 会创建一个单列表的 DataFrame。
  • 打印 DataFrame:print(dframe) 打印生成的 DataFrame。

方法 - 3:从 ndarray/列表字典创建 DataFrame

ndarray/列表字典可用于创建 DataFrame,所有 ndarray 的长度必须相同。索引将默认为 range(n);其中 n 表示数组长度。让我们来了解下面的示例。

示例 -

输出

     Name  Age
0     Tom   20
1  Joseph   21
2   Krish   19
3    John   18

说明

  • 导入 Pandas:import pandas as pd 导入 Pandas 库,并简称为 pd。
  • 创建字典:data 是一个字典,其中键是列名('Name' 和 'Age'),值是包含相关信息的列表。
  • DataFrame 创建:pd.DataFrame(data) 从字典构建 DataFrame。键成为列名,列表成为列。
  • 打印 DataFrame:print(df) 打印生成的 DataFrame。

方法 - 4:使用数组创建带索引的 DataFrame

让我们通过下面的示例来了解如何使用数组创建带索引的 DataFrame。

示例 -

输出

               Name      Ratings
position1     Renault      9.0
position2      Duster      8.0
position3      Maruti      5.0
position4    Honda City      3.0

说明

  • 导入 Pandas:import pandas as pd 导入 Pandas 库,并简称为 pd。
  • 创建字典:data 是一个字典,其中键是列名('Name' 和 'Scores'),值是包含相关信息的列表。
  • DataFrame 创建:pd.DataFrame(data, index=['position1', 'position2', 'position3', 'position4']) 从字典构建 DataFrame。预定义的列表被分配给行。
  • 打印 DataFrame:print(df) 打印生成的 DataFrame。

方法 - 5:从字典列表创建 DataFrame

我们可以将字典列表作为输入数据来创建 Pandas DataFrame。列名默认取为键。让我们来了解下面的示例。

示例 -

输出

    A      B      C      x      y      z
0  10.0  20.0  30.0    NaN    NaN    NaN
1   NaN   NaN   NaN  100.0  200.0  300.0

让我们通过另一个示例来了解如何从带有行索引和列索引的字典列表创建 Pandas DataFrame。

说明

  • 导入 Pandas:import pandas as pd 导入 Pandas 库,并简称为 pd。
  • 创建列表和字典:data 是一个列表,其中每个元素都是一个字典,代表 DataFrame 中的一列。字典的键成为列名。
  • DataFrame 创建:pd.DataFrame(data) 从字典列表构建 DataFrame。字典的键成为列,值成为 DataFrame 中的数据。
  • 打印 DataFrame:print(df) 打印生成的 DataFrame。

示例 - 2

输出

             x    y
first   1.0   2.0
second  NaN NaN 

             x    y1
first   1.0 NaN
second NaN NaN

说明

pandas 库用于创建两个不同的 DataFrame,分别命名为 dframe1 和 dframe2,它们都源自一个名为 data 的字典列表。这些字典充当 DataFrame 中各个行的表示,其中键对应于列名,相关值代表相应的数据。基础 DataFrame dframe1 使用指定的行索引('first' 和 'second')和列索引('x' 和 'y')进行初始化。因此,创建了第二个 DataFrame dframe2,它使用相同的数据集,但在列索引方面有所不同,特别是指定为 'x' 和 'y1'。代码最后将这两个 DataFrame 打印到控制台,阐明了每个 DataFrame 中特定的列结构。此代码作为 pandas 库中 DataFrame 创建和操作的全面概述,为我们提供了如何实现列索引变化的见解。

示例 - 3

输出

         x     y   z
first    2   NaN   3
second  10  20.0  30

说明

在此 Python 代码中,通过提供字典列表并指定列索引,使用 pandas 库构建了一个 Pandas DataFrame。该过程以导入 pandas 库开始,并为了简洁起见,将其分配给别名“pd”。随后,定义了一个名为 data 的字典列表,其中每个字典代表 DataFrame 的一行。这些字典中的键表示列名,而相应的值表示相应的数据。

然后,使用 pd.DataFrame() 构造函数创建 DataFrame(称为 dframe),其中包含提供的数据,并显式将行索引设置为 'first' 和 'second'。生成的 DataFrame 显示了水平结构,列名为 'x'、'y' 和 'z'。任何缺失的值都表示为“NaN”。

方法 - 6:使用 zip() 函数创建 DataFrame

zip() 函数用于合并两个列表。让我们来了解下面的示例。

示例 -

输出

[('john', 95), ('krish', 63), ('arun', 54), ('juli', 47)]
    Name  Marks
0   john     95
1  krish     63
2   arun     54
3   juli     47

说明

此 Python 代码展示了如何使用 pandas 库和 zip 函数从名为 'Name' 和 'Scores' 的两个列表中创建 Pandas DataFrame。导入 pandas 库后,定义 'Name' 和 'Scores' 列表,它们代表 DataFrame 的预期列。zip 函数用于将这些列表中的相应元素合并成元组,形成一个新的名为 list_tuples 的列表。

然后,代码打印元组列表,以一览合并后的数据。随后,使用 pd.DataFrame() 构造函数创建一个名为 dframe 的 Pandas DataFrame,该构造函数将元组列表转换为结构化的水平格式。在创建此 DataFrame 过程中,显式分配了 'Name' 和 'Scores' 列。

方法 - 7:从 Series 字典创建 DataFrame

可以传递字典来创建 DataFrame。我们可以使用 Series 字典,其中生成的索引是所有 Series 的传递索引值的并集。让我们来了解下面的示例。

示例 -

输出

        Electronics      Civil
John             97        97
Abhinay      56        88
Peter           87        44
Andrew      45        96

说明

在此 Python 代码中,使用 pandas 库从 Series 字典创建了一个 Pandas DataFrame。两个主题“Gadgets”和“Common”被表示为列,并将具有特定索引的单独分数映射到一个名为 dframe 的 DataFrame 中。生成的 DataFrame 结构被打印到控制台,展示了一种使用 Pandas 组织和分析标记数据的紧凑方法。

在本教程中,我们讨论了创建 DataFrame 的不同方法。