擅长:python、mysql、java
<p>你可以这样画:</p>
<pre><code>mean_male = df[df['Sex'] == 'Male'].mean().iloc[0]
mean_female = df[df['Sex'] == 'Female'].mean().iloc[0]
std_male = df[df['Sex'] == 'Male'].std().iloc[0]
std_female = df[df['Sex'] == 'Female'].std().iloc[0]
fig = plt.figure()
ax = fig.gca()
plt.plot(df.Sex, df['Metabolic Rates'], marker='.', linestyle='', color='black', markersize=12)
plt.errorbar(['Male', 'Female'], [mean_male, mean_female], yerr=[std_male, std_female], fmt='o', color='red')
</code></pre>
<p>当然,更多的格式是可选的。例如,绘制红色箭头需要<code>plt.annotate</code>。你知道吗</p>
<p>为了充分使用<code>pandas</code>功能,我建议重新格式化<code>df</code>。使用列或索引是在pandas中聚合数据的一种很好的方法。
例如,您可以这样格式化您的df:</p>
<pre><code>df_new = pd.DataFrame({'Male': df[df.Sex == 'Male'].iloc[:, 1], 'Female': df[df.Sex == 'Female'].reset_index(drop=True).iloc[:, 1]})
</code></pre>
<p>(我想使用<code>groupby</code>或<code>aggregate</code>还有一种更简单的方法。)<br/>
现在您可以很容易地获得所有具有<code>df.std()</code>和<code>df.mean()</code>的列所需的信息,如<code>std</code>和<code>mean</code>。也可以使用前端。你知道吗</p>