【问题标题】:KeyError: 'years', PythonKeyError:'年',Python
【发布时间】:2021-04-28 12:02:01
【问题描述】:

我正在尝试绘制 df,但我总是发现错误:KeyError: 'value'

我已经尝试将值定义为 .set_index(''),还尝试了其他列,尝试在尝试绘图之前定义 xlabel 和 ylabel,但我从未得到与此不同的结果。

我的想法是“年”是 xlabel,ylabel 是彼此列的值。

df = pd.read_csv(r'C:\Users\Gustavo\Desktop\Industrial\dados_agregados1.csv', sep = ';', header = 0)

df2 = df.T

df2.head(1)

打印(类型(df2))

df2.plot(x = '年')

我的声望不到 10,所以,我不能在这里发布图片。

谢谢大家

enter image description here

【问题讨论】:

  • 检查df.columns,检查years那里?
  • 是的,返回正是我需要的
  • 尝试使用```来格式化你的代码。将它们放在代码 sn-p 之前和之后,这样它就会等宽,使它看起来对其他用户更具可读性。

标签: python-3.x keyerror


【解决方案1】:

我认为您应该将第一行设置为列

df2 = df.T
df2.columns = df2.iloc[0]
df2 = df2.iloc[1:].reset_index(drop=True)
df2.head(2)

【讨论】:

    【解决方案2】:

    在图像中可以看到的问题是您将(由于转置)列名与实际值混合(意味着以“Years”开头的行被视为数据而不是标题)。

    解决方案是执行类似的操作(完整示例仅选择您需要的内容):

    import pandas as pd
    df = pd.DataFrame(data= {'col1':["CompanyABC", 1000, 1200] , 'col2': ["CompanyXYZ", 333,222]}, index=["Years", 2002, 2003])
    
    # From here would apply to you
    df.columns = df.iloc[0]
    df_new = df.drop('Years')
    df_new.plot.bar()
    

    【讨论】:

    • 如果我使用转置,我收到另一个错误,预期值为 24,但我只收到 15,我还没有收到 Keyerror
    猜你喜欢
    • 2015-04-12
    • 1970-01-01
    • 2022-01-21
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多