我有如下代码:
import pandas as pd
df=pd.read_csv("averaged.txt",sep=",")
df.groupby("year")["tavg"].mean()
但我收到此错误:
文件“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/base.py”,第268行,位于 getitem 中 引发KeyError(“找不到列:{key}”。format(key = key)) KeyError:“未找到列:tavg”
average.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
答案 0 :(得分:0)
您的标题似乎在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()