Pandas dataframe: Group by two columns and then average over another column
<p>Assuming that I have a dataframe with the following values:</p>

<pre><code>df:
col1    col2    value
1       2       3
1       2       1
2       3       1
</code></pre>

<p>I want to first groupby my dataframe based on the first two columns (col1 and col2) and then average over values of the thirs column (value). So the desired output would look like this:</p>

<pre><code>col1    col2    avg-value
1       2       2
2       3       1
</code></pre>

<p>I am using the following code:</p>

<pre><code>columns = ['col1','col2','avg']
df = pd.DataFrame(columns=columns)
df.loc[0] = [1,2,3]
df.loc[1] = [1,3,3]
print(df[['col1','col2','avg']].groupby('col1','col2').mean())
</code></pre>

<p>which gets the following error:</p>

<pre><code>ValueError: No axis named col2 for object type &lt;class 'pandas.core.frame.DataFrame'&gt;
</code></pre>

<p>Any help would be much appreciated.</p>