gpt4 book ai didi

python - Pandas 数据框 : Group by two columns and then average over another column

转载 作者:太空狗 更新时间:2023-10-29 18:24:12 24 4
gpt4 key购买 nike

假设我有一个具有以下值的数据框:

df:
col1 col2 value
1 2 3
1 2 1
2 3 1

我想首先根据前两列(col1 和 col2)对我的数据框进行分组,然后对第三列(值)的值进行平均。所以所需的输出将如下所示:

col1    col2    avg-value
1 2 2
2 3 1

我正在使用以下代码:

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())

出现以下错误:

ValueError: No axis named col2 for object type <class 'pandas.core.frame.DataFrame'>

如有任何帮助,我们将不胜感激。

最佳答案

您需要将列列表传递给 groupby,您传递的内容被解释为 axis param 这就是它引发错误的原因:

In [30]:
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())
avg
col1 col2
1 2 3
3 3

关于python - Pandas 数据框 : Group by two columns and then average over another column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35587459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com