矢量化嵌套的循环 - 熊猫

时间:2015-08-10 04:48:34

标签: python performance for-loop pandas vectorization

我有一个案例,其中来自“外部”for循环的多个属性与来自“inside”for循环的多个属性进行比较。

这两个循环都在pandas数据框架上,从一点点阅读开始,使用iterrows()进行这类工作通常会很慢。

下面说明了如何/为什么使用这个嵌套for循环。这很慢。

for key1, values1 in dataframe_1.iterrows():        

    for key2, values2 in dataframe_2.iterrows():

        if values2['a'] > values1['a'] and value2['b'] == values1['b']:
            # do something, such as append to a combined df

有没有更合适的方法在pandas数据帧上执行这些类型的嵌套比较?不同的数据类型(即字典)是一个更好的起点吗?

1 个答案:

答案 0 :(得分:0)

您不必在大熊猫中应用for循环或iterrows()

for i in ((d2['a'] > d1['a']) & (d2['b'] == d1['b'])):
    # do something
    print i

根据要使用的值,您可以更改行:

(d2['a'] > d1['a']) & (d2['b'] == d1['b'])

获取进行某些操作所需的数据。