可以通过以下步骤实现:
- 导入必要的库:import pandas as pd
import matplotlib.pyplot as plt
- 创建一个示例数据集:data = {'Category': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
'Value': [1, 2, 3, 4, 5, 6, 7]}
df = pd.DataFrame(data)
- 使用groupby函数按照Category列进行分组,并计算每个组的平均值:grouped = df.groupby('Category').mean()
- 创建一个包含子图的画布,并设置子图的布局:fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 5))
- 在第一个子图中绘制柱状图:axes[0].bar(grouped.index, grouped['Value'])
axes[0].set_title('Mean Value by Category')
axes[0].set_xlabel('Category')
axes[0].set_ylabel('Mean Value')
- 在第二个子图中绘制饼图:axes[1].pie(grouped['Value'], labels=grouped.index, autopct='%1.1f%%')
axes[1].set_title('Distribution of Categories')
- 调整子图之间的间距,并显示图形:plt.tight_layout()
plt.show()
这样就可以使用matplotlib子图绘制pandas groupby输出,并展示每个组的平均值柱状图和类别分布饼图。