gpt4 book ai didi

python - pandas.DataFrame.droplevel(如keeplevel)是否有相反的功能?

转载 作者:行者123 更新时间:2023-11-28 19:52:13 24 4
gpt4 key购买 nike

是否有 pandas.DataFrame.droplevel 的相反功能,我可以使用级别名称或索引保留多级索引/列的某些级别?

例子:

df = pd.DataFrame([
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]
], columns=['a','b','c','d']).set_index(['a','b','c']).T


a 1 5 9 13
b 2 6 10 14
c 3 7 11 15
d 4 8 12 16

以下两个命令都可以返回以下数据帧:

df.droplevel(['a','b'], axis=1)
df.droplevel([0, 1], axis=1)

c 3 7 11 15
d 4 8 12 16

我正在寻找一个“keeplevel”命令,以便以下两个命令都可以返回以下数据帧:

df.keeplevel(['a','b'], axis=1)
df.keeplevel([0, 1], axis=1)

a 1 5 9 13
b 2 6 10 14
d 4 8 12 16

最佳答案

没有 keeplevel 因为它是多余的:在一个封闭且定义明确的集合中,当您定义要删除的内容时,您会自动定义要保留的内容

您可能会从您所拥有的和 droplevel 返回的内容中得到不同之处。

def keeplevel(df, levels, axis=1):
return df.droplevel(df.axes[axis].droplevel(levels).names, axis=axis)

>>> keeplevel(df, [0, 1])

a 1 5 9 13
b 2 6 10 14
d 4 8 12 16

关于python - pandas.DataFrame.droplevel(如keeplevel)是否有相反的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58065223/

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