假设我有一个Pandas DataFrame:

import pandas as pd

df = pd.DataFrame({'id': [0, 2, 1], 'name': ['Sheldon', 'Howards', 'Leonard'], 'points': [10, 5, 20]})

我想在此DataFrame内搜索值为{'id': 2, 'name': 'Howards', 'points': 5}的行.如果它存在,我如何搜索它以从它接收索引?

我的问题来了.我有一个方法可以接收具有未知键的dict和具有未知列的DataFrame.我需要在此DataFrame内部进行搜索,以发现内部是否有搜索到的行...

我找到了this answer个关于一个名为Iterrow的方法的答案.这是找到这一排的最好方法吗?代码:

import pandas as pd

df = pd.DataFrame({'c1': [10, 11, 12], 'c2': [100, 110, 120]})
df = df.reset_index()

search = {'c1': 12, 'c2': 120}
index = -1
for idx, row in df.iterrows():
    if row == search:
        index = idx

如果没有,最好的办法是什么?

推荐答案

筛选器条款为np.logical_and:

df.index[np.logical_and(*[df[k].eq(v) for k, v in search_d.items()])]

Index([1], dtype='int64')

Python相关问答推荐

调查TensorFlow和PyTorch性能的差异

如何将 map 数组组合到pyspark中每列的单个 map 中

回归回溯-2D数组中的单词搜索

尽管进程输出错误消息,subProcess.check_call的CalledProcess错误.stderr为无

为什么我的(工作)代码(生成交互式情节)在将其放入函数中时不再工作?

有没有方法可以修复删除了换码字符的无效的SON记录?

用gekko解决的ADE方程系统突然不再工作,错误消息异常:@错误:模型文件未找到.& &

将HTML输出转换为表格中的问题

使用pandas、matplotlib和Yearbox绘制时显示错误的年份

如何从具有多个嵌入选项卡的网页中Web抓取td类元素

Django管理面板显示字段最大长度而不是字段名称

PywinAuto在Windows 11上引发了Memory错误,但在Windows 10上未引发

用合并列替换现有列并重命名

优化器的运行顺序影响PyTorch中的预测

在极性中创建条件累积和

考虑到同一天和前2天的前2个数值,如何估算电力时间序列数据中的缺失值?

启动带有参数的Python NTFS会导致文件路径混乱

为什么\b在这个正则表达式中不解释为反斜杠

* 动态地 * 修饰Python中的递归函数

关于两个表达式的区别