Pandas 如何向Dataframe中添加标题行

Pandas 如何向Dataframe中添加标题行

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

注意 :本文中的代码经过jupyter notebook上的测试。

我们将看到5种不同的方法来添加标题行:

  • 在使用字典创建dataframe时添加标题行

  • 在使用列表的列表创建dataframe时添加标题行

  • 在创建dataframe之后添加标题行

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

  • 使用set_axis方法添加标题行

让我们首先导入Pandas。

import pandas as pd

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

示例

# 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

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

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

示例

# 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

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

方法3: 创建数据帧后

示例

# 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

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

方法 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中向现有数据帧添加标题行。现在我们将使用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中为数据框添加标题。我们看到了5种不同的方法,可以在各种不同的应用和项目中使用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Pandas 精选笔记