geekdoc-python-zh/docs/askpython/pandas-groupby-function.md

4.5 KiB
Raw Permalink Blame History

了解熊猫 groupby()函数

原文:https://www.askpython.com/python-modules/pandas/pandas-groupby-function

嘿,伙计们!在本文中,我们将了解 Pandas groupby()函数以及它所提供的不同功能。


什么是 groupby()函数?

Python Pandas 模块广泛用于更好的数据预处理,并与数据可视化密切相关。

Pandas 模块具有各种内置功能可以更有效地处理数据。Pandas 的dataframe.groupby() function模块用于根据某些预定义的条件或选项,从整个数据集中分割和分离出一部分数据。

语法:

dataframe.groupby('column-name')

使用上面的语法,我们可以拆分数据集,并选择属于传递的列的所有数据作为函数的参数。

输入数据集:

Input Dataset Pandas groupby() Function

Input Dataset Pandas groupby() Function

举例:

import pandas
data = pandas.read_csv("C:/marketing_tr.csv")
data_grp = data.groupby('marital')
data_grp.first()

在上面的例子中,我们使用了 groupby()函数来拆分和单独创建一个新的数据框,其中所有数据分别属于“婚姻”列。

输出:

Python Pandas groupby() function

Python Pandas groupby() function


多列 Pandas groupby()函数

使用Pandas dataframe.groupby() function可以按照多列值分割数据。因此,我们可以将多个列标记作为参数传递,以便只将数据值与那些列值一起分割和隔离。

语法:

dataframe.groupby(['column1', 'column2', ...., 'columnN'])

举例:

import pandas
data = pandas.read_csv("C:/marketing_tr.csv")4
data_grp = data.groupby(['marital','schooling'])
data_grp.first()

输出:

Grouping Multiple Columns Using groupby() function

Grouping Multiple Columns Using groupby() function


Pandas groupby()函数查看群组

除了根据特定的列值分割数据之外,我们甚至可以使用dataframe.groupby().groups函数查看由列的类别组成的每个组的详细信息。

以下是本例中使用的样本数据集的快照:

Marketing Tr Csv 1

Marketing Tr Csv 1

语法:

dataframe.groupby('column').groups

举例:

import pandas
data = pandas.read_csv("C:/marketing_tr.csv")
data_grp = data.groupby('marital').groups
data_grp

如上所示,我们已经拆分了数据,并从列“婚姻”中形成了一个新的数据框架。

此外,我们还使用了 groupby()。groups 函数显示该特定列中所有类别的值。

此外,它还表示这些类别在原始数据集中的位置,以及数据类型和值的数量。

输出:

{'divorced': Int64Index([   3,    4,   33,   34,   63,   66,   73,   77,   98,  112,
             ...
             7284, 7298, 7300, 7326, 7349, 7362, 7365, 7375, 7391, 7412],
            dtype='int64', length=843),
 'married': Int64Index([   1,    2,    5,    7,    8,    9,   10,   11,   13,   14,
             ...
             7399, 7400, 7403, 7404, 7405, 7406, 7407, 7408, 7410, 7413],
            dtype='int64', length=4445),
 'single': Int64Index([   0,    6,   12,   16,   18,   19,   24,   29,   31,   32,
             ...
             7383, 7385, 7386, 7390, 7397, 7398, 7401, 7402, 7409, 7411],
            dtype='int64', length=2118),
 'unknown': Int64Index([2607, 4770, 4975, 5525, 5599, 5613, 6754, 7221], dtype='int64')}


使用 Pandas groupby()函数选择组

正如到目前为止所看到的,我们可以查看不同类别的唯一值的概述,这些值在列中有详细信息。

使用dataframe.get_group('column-value'),我们可以显示属于由 groupby()函数分组的列的特定类别/数据值的值。

语法:

dataframe.get_group('column-value')

举例:

import pandas
data = pandas.read_csv("C:/marketing_tr.csv")
data_grp = data.groupby('marital')
df = data_grp.get_group('divorced')
df.head()

在上面的示例中,我们显示了属于“婚姻”列的值为“离婚”的列的数据。

输出:

Selecting a group Using groupby() function

Selecting a group Using groupby() function


结论

因此,在本文中,我们已经详细了解了 Pandas groupby()函数的工作原理。


参考

  • Pandas groupby()函数— JournalDev