Pandas DataFrame 删除索引
Suraj Joshi
2023年1月30日
本教程将介绍如何删除 Pandas DataFrame 的索引。
我们将使用下面显示的 DataFrame 来展示如何删除索引。
import pandas as pd
my_df = pd.DataFrame(
{
"Person": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
"City": ["Berlin", "Montreal", "Toronto", "Rome", "Munich"],
"Mother Tongue": ["German", "French", "English", "Italian", "German"],
"Age": [37, 20, 38, 23, 35],
},
index=["A", "B", "C", "D", "E"],
)
print(my_df)
输出:
Person City Mother Tongue Age
A Alice Berlin German 37
B Steven Montreal French 20
C Neesham Toronto English 38
D Chris Rome Italian 23
E Alice Munich German 35
使用 reset_index()
方法删除 Pandas DataFrame 的索引
pandas.DataFrame.reset_index()
会将 DataFrame 的索引重置为默认索引。
import pandas as pd
my_df = pd.DataFrame(
{
"Person": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
"City": ["Berlin", "Montreal", "Toronto", "Rome", "Munich"],
"Mother Tongue": ["German", "French", "English", "Italian", "German"],
"Age": [37, 20, 38, 23, 35],
},
index=["A", "B", "C", "D", "E"],
)
df_reset = my_df.reset_index()
print("Before reseting Index:")
print(my_df, "\n")
print("After reseting Index:")
print(df_reset)
输出:
Before reseting Index:
Person City Mother Tongue Age
A Alice Berlin German 37
B Steven Montreal French 20
C Neesham Toronto English 38
D Chris Rome Italian 23
E Alice Munich German 35
After reseting Index:
index Person City Mother Tongue Age
0 A Alice Berlin German 37
1 B Steven Montreal French 20
2 C Neesham Toronto English 38
3 D Chris Rome Italian 23
4 E Alice Munich German 35
它将重置 DataFrame 的索引,但现在的索引将显示为 index
列。如果我们想删除 index
列,我们可以在 reset_index()
方法中设置 drop=True
。
import pandas as pd
my_df = pd.DataFrame(
{
"Person": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
"City": ["Berlin", "Montreal", "Toronto", "Rome", "Munich"],
"Mother Tongue": ["German", "French", "English", "Italian", "German"],
"Age": [37, 20, 38, 23, 35],
},
index=["A", "B", "C", "D", "E"],
)
df_reset = my_df.reset_index(drop=True)
print("Before reseting Index:")
print(my_df, "\n")
print("After reseting Index:")
print(df_reset)
输出:
Before reseting Index:
Person City Mother Tongue Age
A Alice Berlin German 37
B Steven Montreal French 20
C Neesham Toronto English 38
D Chris Rome Italian 23
E Alice Munich German 35
After reseting Index:
Person City Mother Tongue Age
0 Alice Berlin German 37
1 Steven Montreal French 20
2 Neesham Toronto English 38
3 Chris Rome Italian 23
4 Alice Munich German 35
使用 set_index()
方法删除 Pandas DataFrame 的索引
pandas.DataFrame.set_index()
将把作为参数传递的列设置为 DataFrame 的索引,覆盖初始索引。
import pandas as pd
my_df = pd.DataFrame(
{
"Person": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
"City": ["Berlin", "Montreal", "Toronto", "Rome", "Munich"],
"Mother Tongue": ["German", "French", "English", "Italian", "German"],
"Age": [37, 20, 38, 23, 35],
},
index=["A", "B", "C", "D", "E"],
)
df_reset = my_df.set_index("Person")
print("Initial DataFrame:")
print(my_df, "\n")
print("After setting Person column as Index:")
print(df_reset)
输出:
Initial DataFrame:
Person City Mother Tongue Age
A Alice Berlin German 37
B Steven Montreal French 20
C Neesham Toronto English 38
D Chris Rome Italian 23
E Alice Munich German 35
After setting Person column as Index:
City Mother Tongue Age
Person
Alice Berlin German 37
Steven Montreal French 20
Neesham Toronto English 38
Chris Rome Italian 23
Alice Munich German 35
它将 Person
列设置为 my_df
DataFrame 的索引,覆盖了 DataFrame 的初始索引。
作者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn