我有一个存储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"]
以上两种方法都比较了两行所有行的字符串。但是第二个节省了很多时间。是因为熊猫有广播方法用于列操作吗?以及它如何工作?