如何在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日

相关文章

  • Pandas中的DataFrame.to_pickle()函数

    to_pickle()函数是pandas库的一个方法,用于将DataFrame对象保存为pickle格式的二进制文件。pickle格式是一种python特有的序列化格式,可以把对象转换为二进制文件,这个二进制文件可以在多个python程序之间传递,并且可以保持数据的完整性。下面我将详细讲解DataFrame.to_pickle()函数的用法。 函数原型 Da…

    python-answer 2023年3月27日
    00
  • Pandas GroupBy对象 索引与迭代方法

    让我们来详细讲解一下PandasGroupBy对象索引与迭代方法。 Pandas GroupBy对象 在Pandas中,GroupBy对象可以看作是一个特殊的DataFrame对象。GroupBy对象对数据集进行分组,以便进行一些对数据分组之后的计算和分析。我们可以使用GroupBy对象的apply()函数来将函数应用于每个分组数据。 Pandas Grou…

    python 2023年5月14日
    00
  • 如何使用Pandas导入excel文件并找到特定的列

    使用Pandas导入Excel文件并找到特定的列可以分为以下几个步骤: 安装Pandas 如果你还没有安装Pandas,可以在命令行中输入以下命令进行安装: pip install pandas 导入Excel文件 使用Pandas导入Excel文件很方便,只需要使用pd.read_excel()函数,例如: import pandas as pd df =…

    python-answer 2023年3月27日
    00
  • pandas map(),apply(),applymap()区别解析

    下面是对 “pandas map(), apply(), applymap() 区别解析” 的详细讲解: 1. pandas map(), apply() 和 applymap() 的基本说明 这三个函数都是 pandas 中常用的数据处理函数,它们的主要区别在于: map() 函数是用于对 pandas 中的 Series 进行元素级传递, 对于 Data…

    python 2023年5月14日
    00
  • 创建一个Pandas时间序列来显示给定年份的所有星期日

    要创建一个Pandas时间序列来显示给定年份的所有星期日,我们可以使用Pandas中的date_range函数和参数freq=”W-Sun”。下面是实现的步骤: 步骤一:导入必要模块 在代码中首先需要导入必要的Python模块,其中就包括了Pandas库: import pandas as pd 步骤二:创建日期范围 使用Pandas中的date_range…

    python-answer 2023年3月27日
    00
  • R语言rhdf5读写hdf5并展示文件组织结构和索引数据

    R语言是一种流行的数据分析语言,它可以通过rhdf5包读写hdf5格式的数据。hdf5是Hierarchical Data Format的缩写,是一种通用的数据格式,用于存储和组织大量的科学数据。在本攻略中,我将详细讲解使用R语言rhdf5包读写hdf5文件以及展示文件组织结构和索引数据的过程。 安装rhdf5包 在开始之前,我们需要安装并加载rhdf5包。…

    python 2023年6月13日
    00
  • pandas DataFrame创建方法的方式

    下面是pandas DataFrame创建方法的完整攻略: 创建一个空的DataFrame 可以使用pandas.DataFrame()函数创建空的DataFrame,示例代码如下: import pandas as pd df = pd.DataFrame() print(df) 输出: Empty DataFrameColumns: []Index: […

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

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

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