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

Pandas中的Groupby操作,可以把数据框架中的行或者列分组,然后对分组后的数据进行聚合,统计分析等操作。但是,在实际的应用场景中,有时候需要把分组后的数据框架中的行分别保存到一个列表中。下面是针对这个需求的详细讲解。

首先,我们可以通过Pandas中的Groupby函数对数据进行分组。例如,下面的例子中我们按照“B”列的值进行分组。

import pandas as pd 

df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
                   'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
                   'C': [1, 2, 3, 4, 5, 6, 7, 8],
                   'D': [9, 10, 11, 12, 13, 14, 15, 16]})

grouped = df.groupby('B')

接下来,我们可以使用apply函数来对分组后的数据进行操作。apply函数接受一个自定义的函数作为参数,在这个函数中,我们可以对每个分组进行操作并返回一个结果。例如,下面的例子中,我们定义了一个函数,把分组后的数据框架的行保存到一个列表中。

def group_to_list(df):
    return df.values.tolist()

grouped.apply(group_to_list)

这样,就可以把分组后的数据框架中的行保存到一个列表中了。注意,这里的结果是一个序列,序列中的每个元素都是一个列表。

完整代码如下:

import pandas as pd 

df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
                   'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
                   'C': [1, 2, 3, 4, 5, 6, 7, 8],
                   'D': [9, 10, 11, 12, 13, 14, 15, 16]})

grouped = df.groupby('B')

def group_to_list(df):
    return df.values.tolist()

grouped.apply(group_to_list)

结果为:

B
one      [[foo, one, 1, 9], [bar, one, 2, 10], [foo, one, ...
three        [[bar, three, 4, 12], [foo, three, 8, 16]]
two      [[foo, two, 3, 11], [foo, two, 5, 13], [bar, tw...
dtype: object

其中,每个元素都是一个列表,这个列表中保存了每个行的信息。例如,第一个元素是:

[[foo, one, 1, 9], [bar, one, 2, 10], [foo, one, 7, 15]]

这个列表中保存了所有B列的值为“one”的行的信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在Pandas Groupby中把数据框架的行分组到列表中 - Python技术站

(1)
上一篇 2023年3月27日
下一篇 2023年3月27日

相关文章

  • 使用SQLAlchemy从Pandas数据框架创建一个SQL表

    首先需要安装SQLAlchemy和Pandas模块,使用pip命令安装即可。 pip install sqlalchemy pandas 接下来,我们需要根据Pandas的数据框架创建一个SQL表。首先,需要使用Pandas read_csv() 方法读取数据文件,并将数据装入Pandas的数据框架中。 import pandas as pd from sq…

    python-answer 2023年3月27日
    00
  • python3 pandas 读取MySQL数据和插入的实例

    好的。下面我会详细介绍如何使用Python3 Pandas读取MySQL数据和插入MySQL的方法和示例。 安装pandas和pymysql库 首先需要在Python3环境中安装pandas和pymysql库。可以使用pip命令安装,命令如下: pip install pandas pip install pymysql 读取MySQL数据 使用Python…

    python 2023年6月13日
    00
  • Python与Pandas和XlsxWriter组合工作 – 1

    Python、Pandas和XlsxWriter组合工作 Python是一种高级编程语言,可以轻松地进行数据处理和分析。Pandas是Python中的一个库,为处理和分析大量数据提供了高效的功能。XlsxWriter是Python中的另一个库,用于创建Excel文件。 安装Python、Pandas和XlsxWriter 在使用这三个库之前,需要在计算机上安…

    python-answer 2023年3月27日
    00
  • pandas中提取DataFrame某些列的一些方法

    提取DataFrame中的某些列是数据分析中经常遇到的任务,下面是几种在pandas中提取DataFrame某些列的方法: 使用列名提取 通过列名提取DataFrame中的某些列是最常见的做法,可以使用方括号来提取一列或多列,如下所示: import pandas as pd # 创建一个DataFrame df = pd.DataFrame({ ‘A’: …

    python 2023年5月14日
    00
  • pandas求平均数和中位数的方法实例

    pandas求平均数和中位数的方法实例 什么是平均数和中位数? 平均数是数值数据的总和除以数据点的数量,它可以很好地反映数据的总体趋势。中位数是数据样本中值的位置,即把样本数据按照大小排序,中间的数值即为中位数。在一些特殊情况下,使用中位数可以更好地描述数据集的分布情况,例如数据集中存在异常值时。 下面将会介绍pandas中如何使用内置的方法求取平均数和中位…

    python 2023年5月14日
    00
  • 如何用Pandas显示某一年的星期数

    以下是使用 Pandas 显示某一年的星期数的完整攻略: 1. 加载 Pandas 库 在使用 Pandas 查看某一年星期数之前,我们需要先加载 Pandas 库。使用以下代码可以加载 Pandas 库: import pandas as pd 2. 获取某一年的日期范围 Pandas 中的日期范围是非常强大且方便的功能。首先,我们需要使用 Pandas …

    python-answer 2023年3月27日
    00
  • Python pandas 重命名索引和列名称的实现

    下面是详细讲解“Python pandas 重命名索引和列名称的实现”的完整攻略: 一、重命名列名称 在pandas中,可以通过rename()方法来重命名DataFrame的列名称。其中,rename()方法可以传入一个字典参数,来指定要重命名的列以及对应的新列名。示例代码如下: import pandas as pd # 创建DataFrame df =…

    python 2023年5月14日
    00
  • Pandas 将每个单词的第一个和最后一个字符转换成大写字母

    要将DataFrame中每个单词的第一个和最后一个字符转换成大写字母,可以通过Pandas中的apply方法结合lambda表达式来实现。 首先,需要使用Pandas将数据读取为DataFrame对象,例如: import pandas as pd # 读取数据 data = pd.read_csv("data.csv") 接下来,可以定…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部