<p>以下是如何调整值:</p>
<pre><code>df = df.drop('Total').set_index(['Species', 'Status']) # recreating 'Total' and leaving only numerical columns
difference = 100 - df.sum() # adjustment values
for col, index in df.idxmax().items(): # works also if max() occurs in different rows
df.loc[index, col] += difference[col] # adjusting each max value
</code></pre>
<p>要获得:</p>
<pre><code>Species Status
Kentucky L 94.0 88.0 84.0
Eupesu L 0.0 2.0 3.0
Serrated L 1.0 4.0 2.0
Smooth_Brome L 2.0 0.0 1.0
U1 L 3.0 6.0 10.0
</code></pre>
<p>以便:</p>
<pre><code>result = pd.concat([df.reset_index(), df.sum().to_frame().T]).fillna('')
result.index = result.index.tolist()[:-1] + ['Total']
</code></pre>
<p>收益率:</p>
<pre><code> Species Status T1 T2 T3
0 Kentucky L 94.0 88.0 84.0
1 Eupesu L 0.0 2.0 3.0
2 Serrated L 1.0 4.0 2.0
3 Smooth_Brome L 2.0 0.0 1.0
4 U1 L 3.0 6.0 10.0
Total 100.0 100.0 100.0
</code></pre>