Одним из возможных решений для повышения производительности является использование numpy.ravel
для массива 1d из всех значений DataFrame, а затем использование np.min
(если возможно пропущенные значения np.nanmin
) и np.max
:
df1 = pd.DataFrame({
'C':[7,8,9,4,2,3],
'D':[10,3,5,-7,10,0],
'E':[5,-3,6,9,2,4],
})
df2 = pd.DataFrame({
'A':[73,8,9,4,2,3],
'D':[1,3,52,-7,1,0],
'E':[53,-33,63,9,2,4],
})
pollution = {'a':df1, 'b':df2, 'chemical_start_time':pd.DataFrame([100])}
max_pols = []
min_pols = []
for key, df in pollution.items():
if key != 'chemical_start_time':
v = df.values.ravel()
max_pols.append(np.max(v))
min_pols.append(np.min(v[v > 0]))
max_pol = np.max(max_pols)
min_pol = np.min(min_pols)
print (max_pol)
73
print (min_pol)
1