📅  最后修改于: 2023-12-03 15:25:17.502000             🧑  作者: Mango
在进行数据处理时,经常会遇到需要将多个索引转换为列的情况。这时候,我们可以使用 pandas 库中的 reset_index
方法来实现。
reset_index
方法可以将 DataFrame 或 Series 的多级行索引转换为列,并重置行索引值。示例代码如下:
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'Year': [2015, 2016, 2015, 2016, 2016],
'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
'Sales': [200, 150, 300, 250, 175]}
df = pd.DataFrame(data)
print(df)
# Output
# Name Year Month Sales
# 0 Alice 2015 Jan 200
# 1 Bob 2016 Feb 150
# 2 Charlie 2015 Mar 300
# 3 David 2016 Apr 250
# 4 Eva 2016 May 175
multi_index = df.set_index(['Year', 'Month'])
print(multi_index)
# Output
# Name Sales
# Year Month
# 2015 Jan Alice 200
# 2016 Feb Bob 150
# 2015 Mar Charlie 300
# 2016 Apr David 250
# 2016 May Eva 175
reset_index = multi_index.reset_index()
print(reset_index)
# Output
# Year Month Name Sales
# 0 2015 Jan Alice 200
# 1 2016 Feb Bob 150
# 2 2015 Mar Charlie 300
# 3 2016 Apr David 250
# 4 2016 May Eva 175
reset_index
方法还有一些常用参数,如下:
drop
: 是否把原来的索引列丢掉,默认为 True
。level
: 可以指定需要转换为列的索引级别,也可以使用索引标签。col_fill
: 当转换后的列名为 MultiIndex
时,可以指定用来填充列名的字符串。reset_index
方法是将多索引转为列的一种简单有效的方法。除此之外,pandas 还提供了其他一些方法,如 stack
和 unstack
,可以用来处理多级行列索引。