擅长:python、mysql、java
<p>我可以按国家提供百分比帮助,但不能提供条形图部分。您可以使用groupby、merge和math来获取所需的数字:</p>
<pre><code>df = pd.DataFrame({'location': ['Austria', 'Austria', 'Austria', 'Austria'],
'vaccine': ['Moderna', 'Johnson&Johnson', 'Moderna', 'Johnson&Johnson'],
'total_vaccinations': [1, 2, 3, 4]})
# df_tcv = df_total_by_country_by_vaccine
df_tcv = df.groupby(['location', 'vaccine'], as_index=False)['total_vaccinations'].sum()
df_total_by_country = df_tcv.groupby('location', as_index=False)['total_vaccinations'].sum()
df_total_by_country = df_total_by_country.rename(columns={'total_vaccinations': 'location_total'})
df_tcv = df_tcv.merge(df_total_by_country, on='location', how='left')
df_tcv['pct_vac_by_c'] = df_tcv['total_vaccinations'] / df_tcv['location_total']
</code></pre>
<p>要获取df_tcv,请执行以下操作:</p>
<pre><code> location vaccine total_vaccinations location_total pct_vac_by_c
0 Austria Johnson&Johnson 6 10 0.6
1 Austria Moderna 4 10 0.4
</code></pre>