gpt4 book ai didi

python - 根据 multiIndex 的值选择数据帧的切片

转载 作者:行者123 更新时间:2023-12-01 07:09:14 27 4
gpt4 key购买 nike

我有一个多索引数据框。

我可以使用以下命令创建逻辑掩码:

df.index.get_level_values(0).to_series().str.find('1000')!=-1

这将为第一个索引级别包含字符 '1000' 的所有行返回 bool 值 True,否则返回 False

但我无法使用该掩码对数据帧进行切片。

我尝试过:

df[df.index.get_level_values(0).to_series().str.find('1000')!=-1]

它返回了以下错误:

ValueError:无法从重复轴重新索引

我也尝试过:

df[df.index.get_level_values(0).to_series().str.find('1000')!=-1,:]

它仅返回逻辑掩码作为输出和以下错误:

Length: 1755, dtype: bool, slice(None, None, None))' is an invalid key

有人能给我指出正确的解决方案以及有关如何正确切片多索引数据帧的良好引用吗?

最佳答案

一个想法是删除 to_series() 并使用 Series.str.contains对于测试子字符串:

df[df.index.get_level_values(0).str.contains('1000')]

另一个是将掩码转换为 numpy 数组:

df[df.index.get_level_values(0).str.contains('1000').values]

将掩码值转换为数组的解决方案:

df[(df.index.get_level_values(0).to_series().str.find('1000')!=-1).values]

关于python - 根据 multiIndex 的值选择数据帧的切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58302883/

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