如何在 Pandas 中按组计算观察值?
在实际的数据科学项目中,您将处理大量数据并反复尝试,因此为了提高效率,我们使用 Groupby 概念。 Groupby 概念非常重要,因为它能够有效地聚合数据,无论是性能还是代码量都非常出色。 Groupby主要是指一个涉及以下一个或多个步骤的过程,它们分别是:
- 拆分:这是我们通过对数据集应用某些条件将数据拆分成组的过程。
- 应用:这是一个我们独立地将一个函数应用到每个组的过程。
- 合并:是我们在应用groupby和results后将不同的数据集合并成一个数据结构的过程。
Syntax : groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)
Parameters :
- by : mapping, function, str, or iterable
- axis : int, default 0
- level : If the axis is a MultiIndex (hierarchical), group by a particular level or levels
- as_index : For aggregated output, return object with group labels as the index. Only relevant for DataFrame input. as_index=False is effectively “SQL-style” grouped output
- sort : Sort group keys. Get better performance by turning this off. Note this does not influence the order of observations within each group. groupby preserves the order of rows within each group.
- group_keys : When calling apply, add group keys to index to identify pieces
- squeeze : Reduce the dimensionality of the return type if possible, otherwise return a consistent type
Returns : GroupBy object
在这里,我们使用一个简单的虚拟数据框,如下所示:
此外,我们使用一些方法来计算 Pandas 中组的观察值,下面将通过示例进行解释。
示例 1:使用 group.count(按一个变量计数)
在这个例子中,我们将使用 group.count() 方法来计算每个组中的成员总数。
Python3
# import libraries
import pandas as pd
#create pandas DataFrame
df = pd.DataFrame({'Name': ['Arun', 'Arun', 'Bhuvi', 'Bhuvi',
'Bhuvi', 'Chandan', 'Chandan'],
'Department':['CSE', 'IT', 'CSE', 'CSE',
'IT', 'IT', 'CSE'],
'Funds': [1100, 800, 700, 600, 600, 500, 1200]})
# create a group using groupby
group = df.groupby("Department")
# count the observations
group.count()
Python3
# import libraries
import pandas as pd
#create pandas DataFrame
df = pd.DataFrame({'Name': ['Arun', 'Arun', 'Bhuvi', 'Bhuvi',
'Bhuvi', 'Chandan', 'Chandan'],
'Department':['CSE', 'IT', 'CSE', 'CSE',
'IT', 'IT', 'CSE'],
'Funds': [1100, 800, 700, 600, 600, 500, 1200]})
# create a group using groupby
group = df.groupby(['Name', 'Department'])
# size of group to count observations
group = group.size()
# make a column name
group.reset_index(name='Observation')
输出:
示例 2:使用 group.size(按多个变量计数)
在这个例子中,我们将使用 group.size() 方法来计算每个组中的条目/行数。
蟒蛇3
# import libraries
import pandas as pd
#create pandas DataFrame
df = pd.DataFrame({'Name': ['Arun', 'Arun', 'Bhuvi', 'Bhuvi',
'Bhuvi', 'Chandan', 'Chandan'],
'Department':['CSE', 'IT', 'CSE', 'CSE',
'IT', 'IT', 'CSE'],
'Funds': [1100, 800, 700, 600, 600, 500, 1200]})
# create a group using groupby
group = df.groupby(['Name', 'Department'])
# size of group to count observations
group = group.size()
# make a column name
group.reset_index(name='Observation')
输出 :