如何在 Pandas DataFrame 中添加标题行?
Pandas 是 Python 中一个非常流行的数据处理和操作库,经常用于数据分析和数据预处理。Pandas 库具有一个强大的数据结构,称为 Pandas DataFrame,用于存储任何类型的二维数据。在这篇文章中,我们将学习各种向 Pandas DataFrame 添加标题行(或简称列名)的方法。
注意 − 本文中代码已在 Jupyter Notebook 上测试。
我们将看到五种添加标题行的方法:
使用字典创建 DataFrame 时添加标题行
使用列表的列表创建 DataFrame 时添加标题行
创建 DataFrame 后添加标题行
从 CSV 文件读取文件时添加标题行
使用 set_axis 方法添加标题行
让我们从导入 Pandas 开始
import pandas as pd
方法 1:使用字典创建 DataFrame 时
示例
# Add header row while creating the dataframe through a dictionary
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
在上面的代码中,我们通过字典初始化 DataFrame 的虚拟数据。键值对分别表示列名和列数据。Pandas 自动读取此字典,并能够生成包含标题行的列。
方法 2:使用列表的列表创建 DataFrame 时
示例
# Add header row while creating the dataframe through lists 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
在此方法中,我们有一个列表的列表,其中每个子列表存储 DataFrame 行的信息。我们创建一个列名列表,并在初始化 DataFrame 时将其传递给 pd.DataFrame 方法。
方法 3:创建 DataFrame 后
示例
# Add header row after creating the dataframe 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
在上面的代码中,我们首先初始化一个没有任何标题行的 DataFrame。然后,我们初始化一个我们想要使用的列名列表,并使用 pd.DataFrame.columns 属性设置已定义的 Pandas DataFrame 的标题行。
方法 4:从 CSV 文件读取文件时
示例
尝试使用 Pandas 读取 CSV 文件时,它会自动将第一行视为列名。但是,我们的数据集中可能不存在列名,如下面的示例所示。假设数据集存储为“course_data.csv”。
# Incorrect header row
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”参数传递标题行名称列表来指定列名。
示例
# Add header row while reading files from 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 中向现有 DataFrame 添加标题行。现在我们将使用 pd.DataFrame.set_axis 方法实现相同的功能。
# Add row row after creating the dataframe using 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
这里,我们首先使用上面的数据初始化一个没有任何标题行的 DataFrame。然后,我们使用 set_axis 方法添加标题行。我们将 axis=1 传递以指定我们正在设置列名。我们还将标志“inplace”设置为 True 以进行就地操作。
注意 − 设置 axis = 0 将设置行名而不是列名,并且还可能引发错误,因为通常行数多于列数。
结论
本文教我们如何在 Pandas 中向 DataFrame 添加标题。我们看到了五种不同的方法,这些方法可以用于各种不同的应用程序和项目。
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP