首页 > 解决方案 > 数据框长迭代

问题描述

亲爱的,我的数据框包含许多列和行(40000 行),如下所示,

在此处输入图像描述

许多行的“CVLAN_description”列是 NAN,如果两列相等('C-VLAN' 和 'SPO 名称'),我想用其他行填充它在某些条件下具有值,这意味着通过传统方式我将有两个内部 for 循环将每一行迭代到所有行以查看条件是否匹配,这将导致 40000*40000 次迭代,在我的笔记本电脑上运行我的代码时可能需要几个小时:

for index, row in with_VLANe_after.iterrows():
        if row['CVLAN_description']!='nan':
            for index2, row2 in with_VLANe_after.iterrows():
               if  row['C-VLAN'] ==row2['C-VLAN'] and 
                  row2['Service_name']=='nan' and row['SPO Name'] 
                  ==row2['SPO Name'] and 
                  row['S-VLAN'] ==row2['S-VLAN']  : with_VLANe_after.set_value(index2,'CVLAN_description',row['CVLAN_description'])
                 print (row['CVLAN_description'])

任何人都可以帮助我避免长时间的迭代。

标签: pythonpandasdataframefor-looptiming

解决方案


推荐阅读