擅长:python、mysql、java
<p>在计算平均值之前,可以屏蔽零值:</p>
<pre><code>df.assign(average_marks=df.mask(df.eq(0)).select_dtypes("number").mean(1))
name maths english chemistry average_marks
0 mark 10 0 20 15.0
1 tom 10 20 30 20.0
2 hall 0 25 15 20.0
</code></pre>
<p>@trimvi的解决方案更简单。这只是一种选择</p>