【问题标题】:KeyError: "['....'] not in index" [closed]KeyError:“['....'] 不在索引中”[关闭]
【发布时间】:2020-12-18 23:02:42
【问题描述】:

这就是我所拥有的:

注意:CMPLNT_FR_TM 是投诉时间

我正在尝试绘制这样的图表:

我正在尝试创建一个图表来显示 X 时间有多少投诉/犯罪...

这是我的代码:

filter1 = (new_nypd_complaint_record['BORO_NM'] == 'BROOKLYN')
crime_in_brooklyn_by_time = new_nypd_complaint_record[filter1]
#convert time format from H:M:S to H (int)
crime_in_brooklyn_by_time['CMPLNT_FR_TM'] = 
pd.to_datetime(crime_in_brooklyn_by_time['CMPLNT_FR_TM'], 
format='%H:%M:%S').dt.hour

groups = crime_in_brooklyn_by_time.groupby(["CMPLNT_FR_TM"])
crime_time = groups.size()
crime_time = crime_time.to_frame(name="NUMBER_OF_CRIME")
crime_time.sort_values(by="CMPLNT_FR_TM", ascending=False)

crime_time.head()[["NUMBER_OF_CRIME","CMPLNT_FR_TM"]].plot(x="CMPLNT_FR_TM", kind="bar")

错误:

KeyError:“['CMPLNT_FR_TM'] 不在索引中”

谢谢,

编辑:我跑

print(crime_in_brooklyn_by_time.columns.tolist())

我只有一列: NUMBER_OF_CRIME 不知道为什么...?

【问题讨论】:

  • 运行 print(crime_in_brooklyn_by_time.columns.tolist()) 以查看标题实际上是什么。
  • 请提供预期的minimal, reproducible example
  • @cs95 我做了...我得到了NUMBER_OF_CRIME 为什么你认为我只得到一列?
  • @Prune 我刚刚添加了更多代码......并试图让问题变得简单......
  • 我将等待 MRE。我们应该能够复制并粘贴您的代码的连续块,执行该文件,并重现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和所需的输出来测试我们的建议。

标签: python pandas dataframe plot


【解决方案1】:

该列在您的索引上。您不能按名称引用索引列,并且将“KeyError”作为reuslt。您可以reset_index().to_frame() 之后将该列放入您的数据框中。你可以改变:

crime_time = crime_time.to_frame(name="NUMBER_OF_CRIME")

crime_time = crime_time.to_frame(name="NUMBER_OF_CRIME").reset_index()

另外,这段代码什么也没做:

crime_time.sort_values(by="CMPLNT_FR_TM", ascending=False)

您应该将其设置回数据框:

crime_time = crime_time.sort_values(by="CMPLNT_FR_TM", ascending=False)

【讨论】:

    【解决方案2】:

    确保 csv 文件的标题中不包含空格。因此,您可以返回 Excel 工作表并确保其相同,或者您也可以使用它来删除(如果有) df.columns = df.columns.to_series().apply(lambda x: x.strip())

    确保所有内容拼写正确,并且这些列存在于数据框中。 您可以通过这样做检查列名 list(groups.columns.values)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-30
      • 2018-05-16
      • 2020-02-03
      • 2017-11-04
      • 2021-08-23
      • 2016-11-22
      • 2018-04-30
      • 2018-07-17
      相关资源
      最近更新 更多