我有一个称为从属<class 'pandas.core.frame.DataFrame'>
的公司数据框:
Date ID Name Company Email
2018 1 AB Apple apple@apple.com
2017 2 BC MicroSoft ms@ms.com
2016 3 CD Amazon amz@amz.com
Company
列是对象类型,而不是字符串。
和另一个主数据<class 'pandas.core.frame.DataFrame'>
的大数据框(2GB):
code company_name product
123 MicroSoft Windows
456 Apple iphone
789 Amazon cloud
类型company_name
是对象,与Company
相同的对象类型,而不是字符串。
我想在第二个DF的Company
中的company_name
值中查找每个值,并将匹配项附加到序列中:
def finder(slave, master):
finalList = []
for company in slave['Company']:
if type(company) == 'some_specific_type':
for info in master['company_name']:
if company in info:
finalList.append(master.loc[str(info)]['code'])
break
else:
finalList.append(company)
return finalList
在这种情况下,查找过程如何更快?主列表是20m线,电流循环非常慢。
slave['newCode'] = finder(slave, master) // very slow
结果将是:
Date ID Name Company Email newCode
2018 1 AB Apple apple@apple.com 456
2017 2 BC MicroSoft ms@ms.com 123
2016 3 CD Amazon amz@amz.com 789
我正在检查值的类型,这不是简单的合并操作。从属设备和主设备DF的行大小不同,主设备为20m行,而从属设备仅为1K行。我想比较列company_name
,但从另一列code
获取相应的行值,并将其作为新列存储在从表中。
我的目标:如何通过对NumPy数组进行矢量化来使用NumPy?