gpt4 book ai didi

python - Pandas 重新索引多索引无法正常工作

转载 作者:行者123 更新时间:2023-12-03 17:11:19 25 4
gpt4 key购买 nike

我有一个 pandas ( 版本 1.0.5 ) DataFrameMultiIndex两个级别,f.i.喜欢:

mi = pd.MultiIndex.from_product((('a', 'c'), (5, 12)))
np.random.seed(123)
df = pd.DataFrame(data=np.random.rand(4, 2), index=mi, columns=['x', 'y'])
我要 reindex 一级 MultiIndex 中包含键 ['a', 'b', 'c', 'd'] .缺失值应该用 np.nan 填充.
对于 非多索引 数据框,我只是用 df.reindex(index=['a', 'b', 'c', 'd']) 重新索引.
现在 MultiIndex ,我认为这应该有效(我还尝试了参数 labelsaxisindex 的所有其他组合):
df.reindex(index=['a', 'b', 'c', 'd'], level=0)
但相反,它似乎完全忽略了 reindex方法并返回未更改的数据帧:
             x         y
a 5 0.696469 0.286139
12 0.226851 0.551315
c 5 0.719469 0.423106
12 0.980764 0.684830
我可以重新索引 MultiIndex 的唯一方法是通过 完全生成一个新的 MultiIndex :
df.reindex(index=pd.MultiIndex.from_product((
['a', 'b', 'c', 'd'], df.index.get_level_values(1).unique())))

恕我直言,必须有一种更简单的方法来做到这一点,否则我在参数中看不到任何用处 levelreindex方法。此外,我经常有几个索引级别,这使得重新索引非常麻烦。
我错过了什么吗? 知道如何直接重新索引而不必显式生成新的多索引吗?

最佳答案

这种行为不是预期的。路过level论据 reindexMultiIndex看来还是破了pandas版本 1.2.3。 github上有一个问题涉及这个:
https://github.com/pandas-dev/pandas/issues/25460

关于python - Pandas 重新索引多索引无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62998216/

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