如何删除 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 中的值进行排序