如何在Pandas Groupby中把数据框架的行分组到列表中

  • Post category:Python

在Pandas数据分析中,groupby操作是非常常见的操作,它允许我们根据一个或多个列,将数据框架中的行进行分组,并对每组进行聚合操作。有时,我们需要将分组后的行以列表的形式展示出来,以便查看每组的具体内容。下面将详细讲解如何在Pandas Groupby中把数据框架的行分组到列表中。

示例数据

我们使用如下的数据框架作为示例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily', 'Frank', 'Grace'],
        'group': [1, 1, 2, 2, 2, 1, 2],
        'score': [86, 92, 89, 78, 88, 90, 94]}

df = pd.DataFrame(data)
print(df)

输出结果如下:

      name  group  score
0    Alice      1     86
1      Bob      1     92
2  Charlie      2     89
3    David      2     78
4    Emily      2     88
5    Frank      1     90
6    Grace      2     94

该数据框架包含了学生的姓名、小组号以及成绩。

将数据框架的行分组到列表中

下面我们将使用groupby方法将数据框架的行分组到列表中:

grouped = df.groupby('group')

for name, group in grouped:
    print('Group: {}'.format(name))
    print(group.values.tolist())
    print('-' * 30)

输出结果如下:

Group: 1
[['Alice', 1, 86], ['Bob', 1, 92], ['Frank', 1, 90]]
------------------------------
Group: 2
[['Charlie', 2, 89], ['David', 2, 78], ['Emily', 2, 88], ['Grace', 2, 94]]
------------------------------

从上述代码中,我们可以看到,groupby方法可以按照指定的列进行分组,这里我们按照’group’列进行分组。grouped对象是一个迭代对象,其中包含了每个分组的名称以及对应的数据框架。我们使用循环遍历每个分组,获取分组的名称以及分组数据框架,然后使用values.tolist()方法将数据框架的每行转换成一个列表,并打印输出。

至此,我们已经详细讲解了如何在Pandas Groupby中把数据框架的行分组到列表中的完整攻略,希望对你有所帮助。