[英]Optimize the execution speed and improve the readability of code
如何優化以下代碼的速度並提高可讀性?
for j in range(len(Relevant_data)):
for x in ['A', 'BB', 'BV', 'Cy', 'R','T']:
if Relevant_data['Type'].iloc[j]==x:
if Relevant_data['Amount'].iloc[j]>=np.asscalar(t.loc[x,0.0].values) and Relevant_data['Amount'].iloc[j]<np.asscalar(t.loc[x,0.25].values):
Relevant_data['Bin'].iloc[j]="{} of {}".format("Bin1",x)
elif Relevant_data['Amount'].iloc[j]>=np.asscalar(t.loc[x,0.25].values) and Relevant_data['Amount'].iloc[j]<np.asscalar(t.loc[x,0.50].values):
Relevant_data['Bin'].iloc[j]="{} of {}".format("Bin2",x)
elif Relevant_data['Amount'].iloc[j]>=np.asscalar(t.loc[x,0.50].values) and Relevant_data['Amount'].iloc[j]<np.asscalar(t.loc[x,0.75].values):
Relevant_data['Bin'].iloc[j]="{} of {}".format("Bin3",x)
elif Relevant_data['Amount'].iloc[j]>=np.asscalar(t.loc[x,0.75].values) and Relevant_data['Amount'].iloc[j]<=np.asscalar(t.loc[x,1.00].values):
Relevant_data['Bin'].iloc[j]="{} of {}".format("Bin4",x)
我能夠提高代碼的可讀性並縮短執行時間。
def analyze(Amount_R,Type_R):
if np.asscalar(t.loc[Type_R,0.0].values)<=Amount_R<np.asscalar(t.loc[Type_R,0.25].values):
return "{} of {}".format("Bin1",Type_R)
if np.asscalar(t.loc[Type_R,0.25].values)<=Amount_R<np.asscalar(t.loc[Type_R,0.50].values):
return "{} of {}".format("Bin2",Type_R)
if np.asscalar(t.loc[Type_R,0.50].values)<=Amount_R<np.asscalar(t.loc[Type_R,0.75].values):
return "{} of {}".format("Bin3",Type_R)
if np.asscalar(t.loc[Type_R,0.75].values)<=Amount_R<=np.asscalar(t.loc[Type_R,1.00].values):
return "{} of {}".format("Bin4",Type_R)
Relevant_data_Retailers['Bin']=np.vectorize(analyze)(Relevant_data_Retailers['Transaction_Amount'],Relevant_data_Retailers['Transaction_Type'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.