Если вы счастливы использовать стороннюю библиотеку, вы можете использовать Pandas.При использовании этого метода «преобразование в списки» не требуется, поскольку данные хранятся более эффективно в массивах NumPy.
import pandas as pd
# read input file
df = pd.read_csv('file.csv')
# calculate mean, ignoring 0 values
df['mean'] = df.iloc[:, 2:].astype(float).replace(0, np.nan).mean(1)
# iterate rows and print results
for name, mean in df.set_index('name')['mean'].items():
print(f'{name} has average of {mean:.2f}')
Вывод:
Jun has average of 5.50
Merie has average of 5.67
Kaes has average of 7.50
Endré has average of 6.20
Ontoinette has average of 6.50
Yerôme has average of 7.00
Mamal has average of 7.75
Eiana has average of nan
Wetra has average of 6.25
Aalika has average of 7.00
Oamira has average of 6.80