尝试使用类似于 SQL 的 python 来聚合 groupby 中的多个列
trying to aggregate multiple columns in groupy by using python similiar to SQL
我目前正在寻找由许多分类列聚合数据框并总结几个指标列。我正在尝试以类似于 SQL 中的方式来做这件事,但我似乎找不到一个简单的方法。我也不确定我是否处于 pandas 分组依据的限制,因为下面的代码 returns 第二个度量列上的键盘错误。如果我只聚合一列,代码将 运行。如何汇总多列?
df_agg = pd.DataFrame(data = df.groupby(['House', 'cat1', 'cat2', 'cat3'])
['points'].mean()
['counts'].count()
['value'].sum()
['metric'].sum()
['metric2'].sum()
['metric3'].sum())
使用 agg
by dictionary
具有聚合函数的列,DataFrame
构造函数不是必需的:
d = {'points':'mean', 'counts':'count','value':'sum','metric':'sum','metric1':'sum','metric2':'sum'}
df_agg = df.groupby(['House', 'cat1', 'cat2', 'cat3']).agg(d).reset_index()
print (df_agg)
我目前正在寻找由许多分类列聚合数据框并总结几个指标列。我正在尝试以类似于 SQL 中的方式来做这件事,但我似乎找不到一个简单的方法。我也不确定我是否处于 pandas 分组依据的限制,因为下面的代码 returns 第二个度量列上的键盘错误。如果我只聚合一列,代码将 运行。如何汇总多列?
df_agg = pd.DataFrame(data = df.groupby(['House', 'cat1', 'cat2', 'cat3'])
['points'].mean()
['counts'].count()
['value'].sum()
['metric'].sum()
['metric2'].sum()
['metric3'].sum())
使用 agg
by dictionary
具有聚合函数的列,DataFrame
构造函数不是必需的:
d = {'points':'mean', 'counts':'count','value':'sum','metric':'sum','metric1':'sum','metric2':'sum'}
df_agg = df.groupby(['House', 'cat1', 'cat2', 'cat3']).agg(d).reset_index()
print (df_agg)