为什么熊猫广播比迭代快得多?它是如何工作的?

时间:2019-03-22 21:24:00

标签: python python-3.x pandas

我有一个存储first_name,last_name和full_name的Pandas DataFrame。它们来自不同的数据源,我通过ID将它们组合在一起。我的任务是检查first_name + last_name和full_name是否表示同一个人。表格是这样的:

'street' in [y.lower() for x in a for y in x]
# True

我的第一步是检查first_name字符串是否在full_name字符串中。一开始,我想循环执行:

   FIRST_NAME   LAST_NAME    FULL_NAME

 0   RICHARD   LEE         LEE' RICHARD

 1   MIKE      JORDAN      MICHAEL JORDAN

 2   Jack      Sparrow     Jack Catchme Sparrow

因为我的表很长(几百万行),所以上面的代码将运行数小时。但是,当我在列中对它们进行操作时,速度非常快:

series = pd.Series(index = df.index)
for row in df.iterrows():
    series[row[0]] = row[1]["FIRST_NAME"] in row[1]["FULL_NAME"]

以上两种方法都比较了两行所有行的字符串。但是第二个节省了很多时间。是因为熊猫有广播方法用于列操作吗?以及它如何工作?

0 个答案:

没有答案