【问题标题】:Finding close rows by values in two pandas dataframes without iterating在两个熊猫数据框中按值查找接近的行而不进行迭代
【发布时间】:2014-11-07 15:01:19
【问题描述】:

假设我有两个数据框,df1 和 df2,我想做以下事情:

for i, row in df1.iterrows():
    lines = df2[(df2['A'] - row['A']).abs() < threshold]
    arr.extend(lines.values)

这种方式效率极低,不进行行迭代怎么办? 我知道我可以使用 Cython 改进迭代,但我想避免它。

【问题讨论】:

  • len(df1)len(df2) 是什么,time_0 列的 dtype 是什么?

标签: python pandas dataframe


【解决方案1】:

如果df1df2 共享一个索引,那么您可以创建一个布尔掩码,然后通过它索引df2

mask = (df2.A - df1.A.abs()) < threshold
arr = df2[mask]

【讨论】:

    猜你喜欢
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 2020-05-17
    • 2015-12-09
    相关资源
    最近更新 更多