【发布时间】:2021-08-24 10:55:15
【问题描述】:
我有这段代码,我首先整理出最短的处理时间。我使用 CSV 文件作为输入,其中有“TestCaseName”、“Average_processing_time”等数据列。使用 Average_processing_time 列,我首先对缩短最短处理时间进行排序。使用冒泡排序我得到了结果,但我还希望将测试用例名称放在与处理时间平行的单独列中。
目前测试用例名称按照 CSV(字母顺序)。但相反,我想要根据平均处理时间的测试用例名称。 这是我目前拥有的代码:-
pt=[] #pt stands for processing time
n=int(df.TestCaseName.count())
processes=[]
for i in range(0,n):
processes.insert(i,i+1)
pt=list(map(float, df["ProcessingTime"]))
for i in range(0,len(pt)-1): #applying bubble sort to sort process according to their processing time
for j in range(0,len(pt)-i-1):
if(pt[j]>pt[j+1]):
temp=pt[j]
pt[j]=pt[j+1]
pt[j+1]=temp
temp=processes[j]
processes[j]=processes[j+1]
processes[j+1]=temp
wt=[] #wt stands for waiting time
avgwt=0 #average of waiting time
#tat=[] #tat stands for turnaround time
#avgtat=0 #average of total turnaround time
wt.insert(0,0)
#tat.insert(0,bt[0])
for i in range(1,len(pt)):
wt.insert(i,wt[i-1]+pt[i-1])
#tat.insert(i,wt[i]+bt[i])
avgwt+=wt[i]
#avgtat+=tat[i]
avgwt=float(avgwt)/n
#avgtat=float(avgtat)/n
print("\n")
print("Process\t\t Processing Time\t\t Waiting Time \t\t TestCaseName") #\t\t\t
Turn Around Time
for i in range(0,n):
# print('{} {} {} {}'.format(processes[i], df.TestCaseName[i], bt[i],
wt[i])
#txt = "{0}, \t\t{1}, \t\t{2}, \t\t\t{3}".format(processes[i], bt[i], wt[i],
df.TestCaseName[i] )
print(str(processes[i])+"\t\t"+str(pt[i])+"\t\t"+str(wt[i])+
"\t\t"+str(df.TestCaseName[i]))
#print(txt)
print("\n")
print("Average Waiting time is: "+str(avgwt))
#print("Average Turn Arount Time is: "+str(avgtat))
【问题讨论】:
-
由于你没有提供任何我可以测试的输入数据,我只能推测你没有按照你想要的方式组织数据的原因是你已经对处理时间进行了排序,但是没有同步调整 df 测试用例名称。如果您提供输入数据的样本,我可以进一步测试
-
@itprorh66 我提供了一张 CSV 结构的图片。如果你想要那个 CSV 文件,那么我不知道我是否可以在 stackoverflow 中上传一个 csv 文件。
标签: python python-3.x for-loop bubble-sort