Я пытаюсь создать скрипт Python, используя панд, которые могут импортировать файл .txt и вычислять среднее значение для каждого предмета
Я пытаюсь включить этот файл "file.txt":
code name subject1 subject2 subject3
1234 Ali 6 0 8
1235 Carl 4 7 7
1236 Jason 3 5 0
и введите это:
subject1 average is: 4.3
subject2 average is: 6
subject3 average is: 7.5
- subject1 рассчитывается так: (6 + 4 + 3) / 3,
subject2рассчитывается следующим образом: (7 + 5) / 2 <- потому что один человек имеет 0 означает, что он / она не ожидал, поэтому их 0 не прибавляется и считается в среднем </p>
subject3 рассчитывается следующим образом: (8 + 7) / 2 <- как выше </p>
Я также пытаюсь найти способ, чтобы скрипт был гибким и имел возможность добавлять большепредметы и больше людей (так что 3 вместо 5)
Это мой код до сих пор:
# read input file
df = pd.read_csv('file.txt')
# 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}')
- Он рассчитывает среднее значение для каждого человека (по горизонтали)
- но я не могу найти способ сделать это вертикально для каждого предмета.
спасибо за помощь, ребята ^ _ ^