我必须对多个CSV文件的数据进行计算。我在编程方面还很陌生,其想法是迭代数据并将变量值发送给函数。 有四个函数,每个变量的输入数量分别为1、2、3、4。 在多个变量函数中,所有集合都是唯一的,并且连续变量要大于先前的变量。
例如,如果有6个Trow
,则结果总数将为56
1 variable gives 6 (unique sets)
2 variables gives 15 (unique sets)
3 variables gives 20 (unique sets)
4 variables gives 15 (unique sets)
4个变量的示例-变量集为(0,1,2,3,4,5):
(a,b,c,d)
(0,1,2,3)
(0,1,2,4)
(0,1,2,5)
(0,1,3,4)
(0,1,3,5)
(0,1,4,5)
(0,2,3,4)
(0,2,3,5)
(0,2,4,5)
(0,3,4,5)
(1,2,3,4)
(1,2,3,5)
(1,2,4,5)
(1,3,4,5)
(2,3,4,5)
我尝试了一个简单的while循环,但是由于文件总数为200,每个文件的平均行数为16(不同文件中的变量Trow
),这意味着总共需要进行迭代大约503,200次,并且需要几个小时才能完成。
如果我可以使用多处理或消除嵌套循环,将会很有帮助。
while i < 10:
x = 'filename'
df = pd.read_csv(x.csv) #reads csv file
Trow = df.shape[0]
a = 0
while a < Trow:
val1 = df.iat[a,0]
Function1(val1) # perform calculations and write to file
b = a + 1
while b < Trow:
val2 = df.iat[b,3]
Function2(val1,val2) # perform calculations and write to file
c = b + 1
while c < Trow:
val3 = df.iat[a,4]
Function3(val1,val2,val3) # perform calculations and write to file
d = c + 1
while d < Trow:
val4 = df.iat[d,7]
Function4(val1,val2,val3,val4) # perform calculations and write to file
d += 1
c += 1
b += 1
a += 1
i += 1