Reputation: 89
I have code that looks like this:
import pandas as pd
df=pd.read_csv("averaged.txt",sep=",")
df.groupby("year")["tavg"].mean()
but I get this error:
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/base.py", line 268, in getitem raise KeyError("Column not found: {key}".format(key=key)) KeyError: 'Column not found: tavg'
The first few lines of averaged.txt look like this:
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
Upvotes: 0
Views: 4335
Reputation: 7651
Your header seems to have an extra space right after tavg
. Try:
import pandas as pd
df=pd.read_csv("averaged.txt") # sep="," is set by default
df.groupby("year")["tavg "].mean()
In order to avoid this mistake in the future, you can simply clean your column names:
import pandas as pd
df=pd.read_csv("averaged.txt")
df.columns = df.columns.map(lambda x: x.strip())
df.groupby("year")["tavg"].mean()
Upvotes: 1