gpt4 book ai didi

python - 如何重置多重索引?

转载 作者:行者123 更新时间:2023-12-01 00:33:57 25 4
gpt4 key购买 nike

这是我的df:

id  val1    val2    cnt
1 5 6 1
2 2 5 2
2 5 1 1
3 4 2 1
3 1 3 2

我运行此代码并获得 MultiIndex:

df = df.pivot(index="id", 
columns="cnt",
values=["val1","val2"]) \
.fillna(0)

如果我添加 .reset_index(level=["id"]),那么我会得到带有 ( 的列,例如 ('id', '') .

如何修复它?

最佳答案

如果需要展平列中的MultiIndex,请在列表理解中使用f-string:

df = df.pivot(index="id", 
columns="cnt",
values=["val1","val2"]) \
.fillna(0)

df.columns = [f'{a}_{b}' for a, b in df.columns]

df = df.reset_index()
print (df)
id val1_1 val1_2 val2_1 val2_2
0 1 5.0 0.0 6.0 0.0
1 2 5.0 2.0 1.0 5.0
2 3 4.0 1.0 2.0 3.0

另一个解决方案:

df.columns = ['_'.join(str(y) for y in x) for x in df.columns]
df = df.reset_index()
print (df)
id val1_1 val1_2 val2_1 val2_2
0 1 5.0 0.0 6.0 0.0
1 2 5.0 2.0 1.0 5.0
2 3 4.0 1.0 2.0 3.0

关于python - 如何重置多重索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57952462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com