【发布时间】:2020-06-16 17:26:31
【问题描述】:
我有两个数据框。一个非常大,有超过 400 万行数据,而另一个有大约 26k。我正在尝试创建一个字典,其中键是较小数据框的字符串。此数据框 (df1) 包含子字符串或不完整的名称,而较大的数据框 (df2) 包含全名/字符串,我想检查 df1 中的子字符串是否在 df2 中的字符串中,然后创建我的字典。
无论我尝试什么,我的代码都需要很长时间,我一直在寻找更快的方法来迭代 df。
org_dict={}
for rowi in df1.itertuples():
part = rowi.part_name
full_list = []
for rowj in df2.itertuples():
if part in rowj.full_name:
full_list.append(full_name)
org_dict[part]=full_list
我错过了休息时间还是有更快的方法来遍历超过 100 万行的非常大的数据帧?
样本数据:
df1
part_name
0 aaa
1 bb
2 856
3 cool
4 man
5 a0
df2
full_name
0 aaa35688d
1 coolbbd
2 8564578
3 coolaaa
4 man4857684
5 a03567
预期输出:
{'aaa':['aaa35688d','coolaaa'],
'bb':['coolbbd'],
'856':['8564578']
...}
等
【问题讨论】:
-
请分享几行数据框和预期输出。