如何删除 pandas 中的索引列(附示例)


有时您可能想从 Python 中的 pandas DataFrame 中删除索引列。

由于 pandas DataFrames 和 Series 始终有一个索引,因此您实际上无法删除索引,但可以使用以下代码重置它:

 df. reset_index (drop= True , place= True )

例如,假设我们有以下带有字母索引的 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#set index of DataFrame to be random letters
df = df. set_index ([pd. Index (['a', 'b', 'd', 'g', 'h', 'm', 'n', 'z'])])

#display DataFrame
df

        points assists rebounds
a 25 5 11
b 12 7 8
d 15 7 10
g 14 9 6
h 19 12 6
m 23 9 5
n 25 9 9
z 29 4 12

我们可以使用reset_index()函数重置索引,使其成为一个连续的数字列表:

 #reset indexes
df. reset_index (drop= True , place= True )

#display DataFrame
df

        points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

请注意,索引现在是从 0 到 7 的数字列表。

正如前面提到的,索引实际上并不是一列。因此,当我们使用shape命令时,我们看到 DataFrame 有 8 行和 3 列(而不是 4 列):

 #find number of rows and columns in DataFrame
df. shape

(8, 3)

奖励:导入和导出时删除索引

通常,您可能希望在从 CSV 文件读取 pandas DataFrame 后重置其索引。导入可以使用以下代码快速重置索引:

 df = pd. read_csv ('data.csv', index_col= False )

您可以使用以下代码确保导出期间索引列不会写入 CSV 文件:

 df. to_csv ('data.csv', index= False )

其他资源

如何在 Pandas 中将列设置为索引
如何删除 Pandas 中包含 NaN 值的行
如何对 Pandas DataFrame 中的值进行排序

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注