【问题标题】:Python scatter plots for aggregated columns in a pandas dataframe熊猫数据框中聚合列的 Python 散点图
【发布时间】:2017-06-12 16:08:03
【问题描述】:

我有一个自 1950 年以来 NBA 每位球员及其统计数据的数据集。数据集中的列包括年份(适用年份)、球员姓名和他所在球队的那一年、在 NBA 的年份以及每位球员职业生涯中每一年的 20 列不同统计数据。其中一列是“PTS”,即玩家当年得分的总分。我想在 Python 中创建一个散点图,在 x 轴上显示 1950 年到 2017 年,在 y 轴上显示当年得分的总分。我认为返回每个赛季总分的最有效方法是:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    seasons = pd.read_csv('C:/windows/temp/Seasons_Stats.csv')
    tp_yr = seasons.groupby('Year').agg({'PTS': ['sum']})

但是使用以下方法创建散点图:

    tp_yr.plot.scatter( x= 'Year', y = 'PTS', s = 'None', c='red')

返回:

KeyError: '年份'

和一个空白图表 我想用红色散点图表示从 1950 年到 2017 年所有年份的总分。

【问题讨论】:

  • “我遇到问题”不是一个充分的问题描述。具体一点:数据框中的列是什么?最终的情节应该显示什么(什么是 x 轴,什么是 y 轴,点应该代表什么?),你试图创建这样的情节是什么?问题是什么?它在多大程度上与您的期望不符,或者您是否遇到错误?如您所见,未决问题列表比您的问题本身要长。请edit 让它负责。
  • 感谢我编辑了帖子以更清晰
  • 转换“年份”列将解决您发布的错误。 (参见:stackoverflow.com/questions/35432918/…)要回答其他问题,您需要展示更多代码。
  • 谢谢,我已经展示了我的其余代码,其中包含一些我在绘制 pandas Dataframes 时发现的信息的更新,但它仍然不能像我需要的那样工作,建议?

标签: python pandas matplotlib


【解决方案1】:

您遇到了一个关键错误,因为聚合数据框中没有名为“Year”的列,因为年份被用作索引。

为了将索引作为数据框的列取回,请使用.reset_index()

这样的事情应该可以工作:

ptsbyyear = df.groupby("Year").agg({'PTS': ['sum']}).reset_index()
ptsbyyear.plot(kind="scatter", x="Year", y="PTS")

【讨论】:

  • 非常感谢。我注意到年份想要一个列名并意识到这是问题所在,但不知道如何将年份检索为 .再次感谢。
猜你喜欢
  • 1970-01-01
  • 2017-05-07
  • 1970-01-01
  • 2022-01-21
  • 2020-11-16
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多