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种不同的方法,可以在各种不同的应用和项目中使用。