首页 > 解决方案 > 绘制 DataFrame 的选择行和列(python)

问题描述

我已经四处搜索,但没有找到一个确切的方法来做到这一点。我有几个棒球队及其统计数据的数据框。如下所示:

   RK   TEAM         GP  AB   R   H    2B  3B  HR   TB   RBI  AVG OBP  SLG   OPS
    1   Milwaukee    163 5542 754 1398 252 24  218  2352 711  .252.323 .424 .747
    2   Chicago Cubs 163 5624 761 1453 286 34  167  2308 722  .258.333 .410 .744
    3   LA Dodgers  163  5572 804 1394 296  33  235 2461 756  .250.333 .442 .774
    4   Colorado    163  5541 780 1418 280  42  210 2412 748  .256.322 .435 .757
    5   Baltimore   162  5507 622 1317 242  15  188 2153 593  .239.298 .391 .689

我希望能够在 X 轴上绘制两个团队,然后在 Y 轴上绘制 3 个指标(例如:R、H、TB),两个团队以条形图格式并排。我一直无法弄清楚如何做到这一点。有任何想法吗?

谢谢你。

标签: pythonpandasdataframebar-chart

解决方案


我的方法是创建一个新的数据框,它只包含您有兴趣绘制的列:

import pandas as pd
import matplotlib.pyplot as plt


data = [[1, 'Milwaukee', 163, 5542, 754, 1398, 252, 24, 218, 2352, 711, .252, .323, .424, .747],
        [2, 'Chicago Cubs', 163, 5624, 761, 1453, 286, 34, 167, 2308, 722, .258, .333, .410, .744],
        [3, 'LA Dodgers', 163, 5572, 804, 1394, 296, 33, 235, 2461, 756, .250, .333, .442, .774],
        [4, 'Colorado', 163, 5541, 780, 1418, 280, 42, 210, 2412, 748, .256, .322, .435, .757],
        [5, 'Baltimore', 162, 5507, 622, 1317, 242, 15, 188, 2153, 593, .239, .298, .391, .689]]

df = pd.DataFrame(data, columns=['RK', 'TEAM', 'GP', 'AB', 'R', 'H', '2B', '3B', 'HR', 'TB', 'RBI', 'AVG', 'OBP', 'SLG', 'OPS'])

dfplot = df[['TEAM', 'R', 'H', 'TB']].copy()

fig = plt.figure()

ax = fig.add_subplot(111)

width = 0.4
dfplot.plot(kind='bar', x='TEAM', ax=ax, width=width, position=1)

plt.show()

这将创建以下输出:

具有多个 y 轴值的团队图


推荐阅读