如何在 Python 中将第一列设为索引

2025年1月11日 | 阅读 4 分钟

基础/先决知识简述

“Pandas” 是 Python 最重要的库之一。它广泛应用于机器学习和数据分析的各种应用中。使用 Pandas,程序员可以创建、读取和操作大量数据,并处理任何文件。“Pandas” 拥有许多机器学习工具,可以应用于大量数据并获得所需的结果。

在 Pandas 中,数据可以有两种形式排列:

  1. Series
  2. DataFrames

Pandas Series

  • Series 是一维的、带标签的数组,能够容纳任何数据类型(整数、字符串、浮点数等)。
  • 它类似于电子表格或数据库表中的一列。
  • Series 既包含数据,也包含与之关联的索引,该索引为数组中的每个元素打标签。
  • 它可以从列表、数组、字典或标量值创建。

Pandas DataFrame

  • DataFrame 是一个二维的、大小可变且可能异构的表格数据结构(类似于数据库中的表或 Excel 电子表格)。
  • 它由行和列组成,其中每一列都是一个 Series。
  • DataFrame 可以由 Series 字典、列表创建,也可以通过从文件(如 CSV 或 Excel)读取数据来创建。
  • DataFrame 中的索引为行打标签,而列则由它们的名称打标签。

这是一个简单的示例程序:

输出

             name     roll   branch   age
0       Raghav      301        ECE     19
1       Charan      202        EEE      18
2    Santhosh     103        CSE      19

理解

创建了三个单独的 Series:name、age、roll 和 branch。然后将它们组合到一个 DataFrame 中以表示一个表。

  • DataFrame 中的条目被视为键:值对。
  • 键代表列名,值代表列中的数据。
  • 它默认创建一个从 0 到行数 - 1 的索引,以表示表格表示中的行。
  • 程序员可以设置任何列作为索引,而不仅仅是 0 到 n。本教程解释了如何做到这一点。

set_index 方法

鉴于其简单性和丰富的方法和工具,我们可以使用一个简单的 **“set_index().”** 方法将我们想要的任何列设置为索引。

语法

  • columns:要设置为索引的列的列表。
  • drop:如果设置为 False,在使用后作为索引,该列将像普通列一样再次在表中指定。因此,它默认设置为 True。
  • append:如果设置为 True,该列将附加到现有索引,而不是成为表的唯一索引。它默认设置为 False。
  • inplace:如果设置为 True,它决定是使用新的 DataFrame 还是更新当前的 DataFrame。它默认设置为 False。
  • verify_integrity:如果设置为 True,它将检查索引中的重复项,并在发现任何重复项时返回 ValueError。它默认设置为 False。

示例

输出

Original dataframe: 
                          Names     Branch    Age   CGPA
Student1        Raghav           ECE      19        9.1
Student2        Charan      B-Arch      18       9.4
Student3       Santosh        AIML      19       9.6

Branch column as the index to the data frame: 
                   Names    Age    CGPA
Branch                    
ECE           Raghav       19        9.1
B-Arch     Charan      18        9.4
AIML      Santosh      19        9.6
Names and Age columns as the index to the data frame: 
                             CGPA
Names     Age      
Raghav      19         9.1
Charan      18         9.4
Santosh    19         9.6

理解

在上面的代码中,第一部分将“Branch”列设为了索引。一旦它被设为索引,它就会从表中删除,因为默认情况下 drop 设置为 True。因此,在下一部分中,当“Names”和“Age”列被设为索引时,“Branch”列就不存在了。

  • 用于处理 .csv 文件

使用 pandas,程序员可以处理任何文件。例如,处理 CSV 文件:

  • CSV 文件是一个文本文件,以表格形式存储数据,值之间用逗号分隔。

程序

输出

        Names         Branch   Age      Salary    Experience (yrs)
0       Sudha                HR      44    112000                           8
1       Harini   Developer      23      94000                           2
2     Venkat             Sales     44     122000                          8

理解

使用 .tocsv(),DataFrame 被转换为 CSV 文件,使用 .read_csv(),文件被读取。在此 DataFrame 上,我们可以像普通 DataFrame 一样将索引更改为我们想要的任何列。

与普通 DataFrame 一样,CSV 文件中的 DataFrame 将被修改,索引将变为“Names”列。可以在 Python 目录中找到并检查该文件。

How to Make the First Column an Index in Python