gpt4 book ai didi

python - 多列高效搜索

转载 作者:行者123 更新时间:2023-12-02 06:29:42 24 4
gpt4 key购买 nike

我有这样的DataFrame:

df = pd.DataFrame([
{
'name': 'Alexandra',
'surname': 'Johnson',
'age': 5
},
{
'name': 'Roland',
'surname': 'Hawking',
'age': 3
}
])

为了查找与特定条件匹配的行,我使用条件组合:

df[((df['name']=='Roland') | (df['surname']=='Johnson')) & (df['age'] > 4)]

返回

        name  surname  age
0 Alexandra Johnson 5

但是,这对于数十万行来说不能很好地扩展。为了加快对某列的搜索速度,我曾对该列建立索引:

indexed = df.set_index('name')
indexed[indexed.index == 'Roland']

对于多列,我可以使用MultiIndex,但是我不知道如何将 bool 条件与多个索引结合使用。你能给建议吗?

最佳答案

不确定这是否是您所指的,所以我会尝试一下:

将名字和姓氏设置为索引

df = df.set_index(['name','surname'])

过滤 alexandra 和 johnson - 将其作为元组传递

df.loc[('Alexandra', 'Johnson')]

age 5
Name: (Alexandra, Johnson), dtype: int64

如果你使用iloc,你会获得更快的速度,但这需要你知 Prop 体的索引。但是,是的,使用多索引,您传递一个索引元组,如果它是三列,那么您的元组中将包含三个元素

关于python - 多列高效搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61100588/

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