gpt4 book ai didi

pandas - 如何找出多索引 Pandas 数据帧的索引中是否缺少给定的数字/文本?

转载 作者:行者123 更新时间:2023-12-04 10:44:22 25 4
gpt4 key购买 nike

我有一个多索引 Pandas 数据框,如下所示。我想要的是弄清楚在给定特定的 0 级索引的情况下是否存在特定的 1 级索引。需要明确的是,请注意,对于 0 级索引“foo”,下面的玩具示例中缺少 1 级索引“2”。所以我想找出所有这些 0 级索引,是否缺少给定的索引(在本例中为“两个”)。对于这个玩具示例,我的结果将是“foo”。我拥有的 Pandas 数据框有超过 40,000 个条目。

INDEX            COL1
level0 level1
first second
bar one 0.361041
two 0.476720
baz one 0.565781
two 0.848519
foo one 0.405524
qux one 0.488229
two 0.303862

除了在 for 循环中循环遍历数据帧之外,还有什么方法可以实现吗?

感谢您的意见。

最佳答案

试试这个来识别丢失的行:

i=df.index.get_level_values(0).unique()
j=df.index.get_level_values(1).unique()
indx = pd.MultiIndex.from_product([i,j])
indx[df.reindex(indx).isna().squeeze()].tolist()

感谢@Alollz 改进:
indx=pd.MultiIndex.from_product([*df.index.levels])
indx[df.reindex(indx).isna().squeeze()].tolist()

输出:
[('foo', 'two')]

关于pandas - 如何找出多索引 Pandas 数据帧的索引中是否缺少给定的数字/文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59777808/

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