【问题标题】:Pandas groupby column not found未找到 Pandas groupby 列
【发布时间】:2020-04-26 02:17:39
【问题描述】:

我的代码如下所示:

import pandas as pd
df=pd.read_csv("averaged.txt",sep=",")
df.groupby("year")["tavg"].mean()

但我收到此错误:

getitem 中的文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/base.py”,第 268 行 raise KeyError("Column not found: {key}".format(key=key)) KeyError:'未找到列:tavg'

averaged.txt 的前几行如下所示:

year,tavg 
1941,2990.0
1942,2909.1666666666665
1943,-292.25
1944,2930.0
1945,2686.3636363636365
1946,2661.6666666666665
1947,2714.1666666666665
1948,2681.6666666666665
1949,2616.6666666666665
1950,2666.6666666666665
1951,2733.3333333333335
1952,2781.6666666666665
1953,2712.5
1954,2723.3333333333335
1955,2754.1666666666665
1956,2759.1666666666665
1957,2698.3333333333335
1958,2792.5
1959,2749.1666666666665
1960,2675.0
1961,2670.8333333333335
1962,2748.181818181818
1963,2676.6666666666665

【问题讨论】:

标签: python


【解决方案1】:

您的标题在tavg 之后似乎有一个额外的空间。试试:

import pandas as pd
df=pd.read_csv("averaged.txt")      # sep="," is set by default
df.groupby("year")["tavg "].mean()

为了避免以后出现这个错误,你可以简单地清理你的列名:

import pandas as pd
df=pd.read_csv("averaged.txt")   
df.columns = df.columns.map(lambda x: x.strip())
df.groupby("year")["tavg"].mean()

【讨论】:

  • 天哪。我怎么能那样做?还是谢谢你!
  • 我鼓励你接受这个答案!即使看起来很简单,但将错误消息和解决方案放在旁边可能会对其他人有所帮助。
猜你喜欢
  • 1970-01-01
  • 2017-07-20
  • 1970-01-01
  • 2017-04-06
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
  • 2014-10-06
相关资源
最近更新 更多