代码之家  ›  专栏  ›  技术社区  ›  blue-sky

用于选择数据的熊猫源

  •  2
  • blue-sky  · 技术社区  · 7 年前

    要选择我使用的数据帧行:

    dataframe[dataframe['column_name'] == 'column_value']
    

    我正在尝试发现此代码的性能,但找不到API定义 == 方法在查找行的上下文中。

    如何找到 = 操作员为了确定以上代码行的性能?

    我想是在 https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html 但不确定如何搜索?

    1 回复  |  直到 7 年前
        1
  •  1
  •   jpp    7 年前

    首先,注意 == 接线员呼叫 __eq__ 在背景中。在您的上下文中,它与 pd.Series 对象而不是 pd.DataFrame . 所以这些是等价的:

    res = pd.Series([1, 2, 3]) == 1
    res = pd.Series([1, 2, 3]).__eq__(1)
    

    然后您可以研究此方法:

    pd.Series.__eq__
    <function pandas.core.ops._comp_method_SERIES.<locals>.wrapper>
    

    此外,你可以调查 _comp_method_SERIES 在里面 ops.py :

    def _comp_method_SERIES(op, name, str_rep, masker=False):
        """
        Wrapper function for Series arithmetic operations, to avoid
        code duplication.
        """
        ....
    

    这应该能让你开始。定义了一些实用程序函数,例如处理空值,这些函数指示熊猫为数据操作添加的值。优化的操作最终可能会调用C级算法,这可能会使纯Python中的跟踪性能问题变得困难。