嗨,我有下面的python代码。 我每次比较多个列和一个单一的数据是基于某个标志值的存在。这里显示了两个这样的集合。ST9和ST1 我使用while循环,for和if-else条件。但这一过程几乎需要13分钟。如何提高计算速度。你知道吗
i=0
Reslt_9=[]
while i<len(xx):
for val in xx.ST9:
if val==4:
xz = xx[['SV1','SV2','SV3','SV4','SV5','SV6','SV7','SV8','SV9','SV10','SV11','SV12']].eq(xx['G9'], axis=0).assign(no = True)
i1 = xz.values.argmax(axis=1)
Reslt_9 = np.append(Reslt_9,xx['R9'][i] -xx[['PR1','PR2','PR3','PR4','PR5','PR6','PR7','PR8','PR9','PR10','PR11','PR12']].assign(no = np.nan).values[xx.index, i1][i])
elif val==2:
Reslt_9=np.append(Reslt_9,0)
i=i+1
a2=0
Reslt_1=[]
aa=read_data
while a2<len(aa):
# Debug area
for val1 in aa.ST1:
if val1==4:
a = aa[['SV1','SV2','SV3','SV4','SV5','SV6','SV7','SV8','SV9','SV10','SV11','SV12']].eq(aa['G1'], axis=0).assign(no = True)
a1 = a.values.argmax(axis=1)
Reslt_1 = np.append(Reslt_1,aa['R1'][a2] - aa[['PR1','PR2','PR3','PR4','PR5','PR6','PR7','PR8','PR9','PR10','PR11','PR12']].assign(no = np.nan).values[aa.index, a1][a2])
elif val1==2:
Reslt_1 = np.append(Reslt_1,0)
a2=a2+1
.....................
# input data
#I have 60 columns and 10871 rows.
# For every row I am comparing any 1 item(lets say sv1) of set-1 with set-2 if corresponding flag column is 4 otherwise default zero.
set-1 set-2
3 6 11 31 22 23 14 17 19 1 with 1 14 3 23 6 11 31 17 9 19 22 10 #(Flag->) 4 4 4 4 4 4 4 4 2 4 4 2
目前没有回答
相关问题 更多 >
编程相关推荐