Groupe par Count DataFrame
df.groupby(['col1', 'col2']).size().reset_index(name='counts')
Crazy Caterpillar
df.groupby(['col1', 'col2']).size().reset_index(name='counts')
df = pd.DataFrame(old_df.groupby(['groupby_attribute'])['mean_attribute'].mean())
df = df.reset_index()
df
data.groupby('amount', as_index=False).agg({"duration": "sum"})
When you use as_index=False , you indicate to groupby() that you don't want to set the column ID as the index (duh!). ... Using as_index=True allows you to apply a sum over axis=1 without specifying the names of the columns, then summing the value over axis 0.
# Groups the DataFrame using the specified columns
df.groupBy().avg().collect()
# [Row(avg(age)=3.5)]
sorted(df.groupBy('name').agg({'age': 'mean'}).collect())
# [Row(name='Alice', avg(age)=2.0), Row(name='Bob', avg(age)=5.0)]
sorted(df.groupBy(df.name).avg().collect())
# [Row(name='Alice', avg(age)=2.0), Row(name='Bob', avg(age)=5.0)]
sorted(df.groupBy(['name', df.age]).count().collect())
# [Row(name='Alice', age=2, count=1), Row(name='Bob', age=5, count=1)]
#calculate sum of sales grouped by month
df.groupby(df.date.dt.month)['sales'].sum()
date
1 34
2 44
3 31
Name: sales, dtype: int64