如何向 Pandas Dataframe 添加标题行?
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 种不同的方法,可用于各种不同的应用程序和项目。

