Pandas DataFrames 和 Series 的高效过滤
过滤 Pandas DataFrames 和 Series 中的数据对于数据操作和分析至关重要。要有效地应用多个过滤器,请考虑利用 Pandas 的内置运算符和布尔索引。
对于 DataFrame 或 Series,以字典格式提供操作和值列表,如下例所示:
<code class="python">relops = {'>=': [1], '<=': [1]}
要应用这些过滤器:
<code class="python">import numpy as np def boolean_filter(x, relops): filters = [] for op, vals in relops.items(): op_func = getattr(np, op) for val in vals: filters.append(op_func(x, val)) return x[(np.logical_and(*filters))] ## Example: df = pandas.DataFrame({'col1': [0, 1, 2], 'col2': [10, 11, 12]}) result = boolean_filter(df['col1'], {'>=': [1]}) print(result) ## Output: # col1 # 1 1 # 2 2 # Name: col1</code>
通过利用布尔索引,此方法避免了不必要的复制,并且效率很高,尤其是对于大型数据集。
以上是如何有效地将多个过滤器应用于 Pandas DataFrames 和 Series?的详细内容。更多信息请关注PHP中文网其他相关文章!