执行这段代码需要很长时间。我有一个名为coilid
的表,大约有3000行。我希望程序转到coilid,查看处理日期,并与retifica进行比较,如果它在确定的范围内,那么我希望他们导出一些retifica单元格。它适用于coilid中的所有行。
import pandas as pd
retifica = pd.read_excel('C:\Arquivoparamim.xlsx', sheet_name='Planilha1')
retifica = retifica.sort_values(by=['Data Retífica'], ascending=True)
coilid = pd.read_excel('C:\Arquivoparamim.xlsx', sheet_name='Planilha2')
coilid = coilid.sort_values(by=['DT_START'], ascending=True)
match=pd.DataFrame()
for x in range (coilid.shape[0]):
for y in range (retifica.shape[0]):
if (coilid.iloc[x,2]>retifica.iloc[y,16])&(coilid.iloc[x,2]<retifica.iloc[y,18]):
matchaux = [coilid.iloc[x],retifica.iloc[y]]
else:
matchaux = [coilid.iloc[x]]
match=match.append(matchaux)
break
match.to_excel('Libraries\Pictures\aline.xlsx')
我希望程序能在coilid id [DT_START]与retifica中的信息“Data de entrada e“Data de Saída之间进行比较。如果coilid在这些数据之间,那么它会将coilid行的值与ret和cilindro以及retifica文件连接在一起返回到Excel工作表中。
Retifica row enter image description here
螺旋状的
enter image description here
1条答案
按热度按时间wlzqhblo1#
在处理这么多行时,对代码进行向量化是很重要的。您可以使用
between
方法创建一个布尔掩码,以指示DT_START
列的每个元素是否位于Data de entrada
和Data de Saída
列的相应元素之间。也许这会有所帮助