如何向 Pandas Dataframe 添加标题行?

pandasserver side programmingprogramming更新于 2025/6/4 4:07:17

Pandas 是 Python 中非常流行的数据处理和操作库,经常用于数据分析和数据预处理。Pandas 库具有一个强大的数据结构,称为 Pandas dataframe,可用于存储任何类型的二维数据。在本文中,我们将了解向 Pandas 数据框添加标题行(或简单的列名)的各种方法。

注意 - 本文中的代码是在 jupyter 笔记本上测试的。

我们将了解如何以 5 种不同的方式添加标题行 -

  • 使用字典创建数据框时添加标题行

  • 使用列表列表创建数据框时添加标题行

  • 创建数据框后添加标题行

  • 从 CSV 读取文件时添加标题行

  • 使用 set_axis 方法添加标题行

让我们从导入 Pandas 开始

import pandas as pd

方法 1:使用字典创建数据框时

示例

# 通过字典创建数据框时添加标题行
data = {'course': ['Math', 'English', 'History', 'Science', 'Physics'], 'instructor': ['John Smith', 'Sarah Johnson', 'Mike Brown', 'Karen Lee', 'David Kim'], 'batch_size': [43, 25, 19, 51, 48]
}
df1 = pd.DataFrame(data)
df1

输出

  course      instructor    batch_size
0 Math        John Smith       43
1 English  Sarah Johnson       25
2 History     Mike Brown       19
3 Science      Karen Lee       51
4 Physics      David Kim       48

在上面的代码中,我们通过字典初始化数据框的虚拟数据。键值对分别表示列名和列数据。Pandas 会自动读取此字典,并能够生成列以及标题行。

方法 2:使用列表列表创建数据框时

示例

# 通过列表创建数据框时添加标题行
data = [['apple', 'red', 5], ['banana', 'yellow', 12]]
columns = ['fruit', 'color', 'quantity']
df2 = pd.DataFrame(data, columns=columns)
df2

输出

   fruit   color  quantity
0 apple      red     5
1 banana  yellow    12

在此方法中,我们有一个列表列表,其中每个子列表存储数据框行的信息。我们在初始化数据框时创建一个列名列表并将其传递给 pd.DataFrame 方法。

方法 3:创建数据框后

示例

# 创建数据框后添加标题行
data = [['apple', 'red', 5], ['banana', 'yellow', 12]]
columns = ['fruit', 'color', 'quantity']
df3 = pd.DataFrame(data)
df3.columns = columns
df3

输出

fruit      color  quantity
0 apple      red    5
1 banana  yellow   12

在上面的代码中,我们首先初始化一个没有任何标题行的数据框。然后我们初始化一个我们要使用的列名列表,并使用 pd.DataFrame.columns 属性来设置已定义的 Pandas 数据框的标题行。

方法 4:从 CSV 文件读取文件时

示例

尝试使用 Pandas 读取 CSV 文件时,它会自动将第一行视为列名。但是,我们的数据集中可能没有列名,如下例所示。假设数据集存储为"course_data.csv"。

# 标题行不正确
df4 = pd.read_csv('course_data.csv')
df4

输出

   Math        John Smith     43
0 English   Sarah Johnson     25
1 History      Mike Brown     19
2 Science       Karen Lee     51
3 Physics       David Kim     48

输出显示 Pandas 正在将数据样本解释为标题行。为了解决这个问题,我们将通过"names"参数传递标题行名称列表来指定列名称。

示例

# 从 CSV 读取文件时添加标题行
columns = ['course', 'instructor', 'batch_size']
df4 = pd.read_csv('course_data.csv', names=columns)
df4

输出

  course      instructor    batch_size
0 Math         John Smith      43
1 English   Sarah Johnson      25
2 History      Mike Brown      19
3 Science       Karen Lee      51
4 Physics       David Kim      48

如上输出所示,Pandas 不再将第一个数据样本读取为标题行!

方法 5:使用 set_axis 方法

示例

我们已经在方法 2 中了解了如何向现有数据框添加标题行。现在我们将使用 pd.DataFrame.set_axis 方法实现相同的功能。

# 使用 set_axis 创建数据框后添加行
data = [['dog', 'brown', 4],
['cat', 'white', 4],
['chicken', 'white', 2]]
df5 = pd.DataFrame(data)
columns = ['animal', 'color', 'num_legs']
df5.set_axis(columns, axis=1, inplace=True)
df5

输出

   animal   color    num_legs
0   dog     brown     4
1   cat     white     4
2  chicken  white     2

首先,我们使用上面的数据初始化一个没有任何标题行的数据框。然后我们使用 set_axis 方法添加标题行。我们传递 axis=1 来指定我们正在设置列名。我们还将标志"inplace"设置为 True 以就地执行。

注意 - 设置 axis = 0 将设置行名而不是​​列名,并且还可能引发错误,因为行通常多于列。

结论

本文教我们如何在 Pandas 中向数据框添加标题。我们看到了 5 种不同的方法,可用于各种不同的应用程序和项目。


相关文章