python - 从 Pandas 中的子数据框列表创建子图
问题描述
我正在做一个关于kaggle的视频游戏销售项目。
该数据的前 5 条记录是(取出几列作为空间):
Name Platform Genre Publisher NA_Sales EU_Sales JP_Sales Global_Sales
0 Wii Sports Wii Sports Nintendo 41.49 29.02 3.77 82.74
1 Super Mario Bros. NES Platform Nintendo 29.08 3.58 6.81 40.24
2 Mario Kart Wii Wii Racing Nintendo 15.85 12.88 3.79 35.82
3 Wii Sports Resort Wii Sports Nintendo 15.75 11.01 3.28 33.00
4 Pokemon Red/Pokemon Blue GB Role-Playing Nintendo 11.27 8.89 10.22 31.37
我想做的是通过Platform
(控制台)比较索尼和任天堂的流派销售。所以到目前为止我所做的就是首先sub dataframes
通过sony_spt = sony.loc[sony['Genre']=='Sports'].drop(columns=['Year', 'Publisher'])
为例如做创建索尼,然后plot
。此示例创建plot
:
# Sony sports sub df
sony_spt.groupby('Platform').sum().plot(kind='bar', figsize=(15, 7))
plt.xlabel('Platform')
plt.ylabel('Sales in $1m\'s')
plt.title('Sony sales in games per console for Sports genre')
plt.show()
我已经把我dataframes
为任天堂和索尼收集的其他潜艇放在了一个list
. 例如,我的索尼流派列表是sony_genre_list = [sony_spt, sony_msc, sony_puz, sony_sim, sony_sgy, sony_ftg, sony_adv, sony_rpy, sony_sht, sony_rac, sony_plt, sony_act]
. 列出的所有类型包括:运动、杂项、谜题、模拟、策略、格斗、冒险、角色扮演、射击、赛车、平台游戏和动作。
我怎样才能节省时间并制作subplots
(就像我展示的那样)list
来sub df's
比较每个控制台/平台的流派销售?
解决方案
你可以试试zip
:
sony_genre_list = [sony_spt, sony_msc, sony_puz, sony_sim, sony_sgy, sony_ftg, sony_adv, sony_rpy, sony_sht, sony_rac, sony_plt, sony_act]
# custumize nrows, ncols, figsize
fig, axes = plt.subplots(nrows=len(sony_genre_list), ncols=1,
figsize=(7,30))
for df, ax in zip(sony_genre_list, axes.ravel()):
df.groupby('Platform').sum().plot(kind='bar', ax=ax)
您还可以绕过sony_genre_list
with的创建groupby
:
for genre, df in sony.groupby('Genre'):
ax = df.groupby('Platform').sum().plot(kind='bar')
推荐阅读
- javascript - Highcharts中条形之间的奇数间距
- javascript - Chrome devtools 不会拾取脚本?
- javascript - 带有承诺的 Javascript setTimeout
- reactjs - Jest 文件夹结构
- makefile - 具有多次重复目标名称的单个“make”先决条件
- python - 在多个过滤器上具有相同扩展名的 Tkinter 保存对话框
- docker-compose - 如何将 Flask 容器连接到 docker-compose 文件中的 Postgresql 容器?
- ios - iOS 应用向 App Store 提交审核失败
- python - 我在 pyqt 中创建了一个应用程序,它有图标。我正在使用 pyinstaller 使其成为 exe 我如何在 Exe 中添加图标
- android - 为什么我的 ACRA 插件不向邮件正文发送任何数据?