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

yizhihongxing

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数据框架

    按给定的比例随机分割一个Pandas数据框架的完整攻略如下: 首先,导入所需的库 import pandas as pd from sklearn.model_selection import train_test_split 加载数据集,这里以鸢尾花数据集为例 df = pd.read_csv(‘https://archive.ics.uci.edu/ml…

    python-answer 2023年3月27日
    00
  • 在Pandas中用空白或空字符串替换NaN

    在Pandas中,我们可以用fillna()函数将NaN填充为任何值,包括空白或空字符串。具体步骤如下: 首先,导入Pandas库: import pandas as pd 接着,创建一个数据表,其中有一些NaN值: data = {‘A’: [1, 2, 3, np.nan, 5], ‘B’: [6, np.nan, 8, np.nan, 10]} df …

    python-answer 2023年3月27日
    00
  • 使用Pandas 实现MySQL日期函数的解决方法

    下面是使用Pandas实现MySQL日期函数的解决方法的完整攻略。 问题描述 在使用MySQL数据库时,我们常常会用到MySQL日期函数,比如DATE_FORMAT、DATE_ADD、DATE_SUB等。但是在使用Pandas操作MySQL数据时,并不能直接使用这些MySQL日期函数,需要采用其他方法实现。那么如何使用Pandas实现MySQL日期函数呢? …

    python 2023年5月14日
    00
  • pandas进行数据的交集与并集方式的数据合并方法

    首先,我们需要了解pandas中可以使用merge()函数和concat()函数进行数据合并。 使用merge函数进行数据合并 merge()函数是pandas中用于将不同DataFrame中的数据合并的函数,它的语法如下: pandas.merge(left, right, how=’inner’, on=None, left_on=None, right…

    python 2023年6月13日
    00
  • Pandas 拼接(concat)

    当我们需要将两个Pandas DataFrame对象合并为一个时,就需要使用Pandas拼接函数。合并的方式可以是简单的竖直合并(即按行连接)或水平合并(即按列连接),也可以是更复杂的合并方式。下面,我将详细讲解Pandas拼接函数的使用方法。 1. 竖直合并(行连接) 要将两个DataFrame对象按垂直方向合并(即按行连接),我们可以使用Pandas的c…

    python-answer 2023年3月27日
    00
  • Python实现冒泡排序的简单应用示例

    以下是详细的“Python实现冒泡排序的简单应用示例”的攻略。 简介 冒泡排序是一种非常基础的排序算法,顾名思义,它通过在序列(例如数组)中重复交换相邻元素的位置来比较大小和排序。冒泡排序算法无需额外内存空间,因此它是空间复杂度为 O(1) 的原地排序算法。 Python提供了非常简单易懂的语法,容易实现冒泡排序。 排序原理 冒泡排序原理非常简单:每次将相邻…

    python 2023年5月14日
    00
  • Pandas Query方法使用深度总结

    下面我来为大家详细讲解“Pandas Query方法使用深度总结”。 什么是Pandas Query方法 Pandas是一个用于数据分析和处理的Python库,其中的DataFrame数据结构是其中的关键组件之一。Pandas提供了许多方法用于对DataFrame进行数据查询、过滤和操作,其中的query()方法是其中的一种工具,可以用来进行数据查询和过滤。…

    python 2023年5月14日
    00
  • 根据条件选择pandas DataFrame中的行

    根据条件选择Pandas DataFrame中的行可以使用DataFrame的loc[]、iloc[]和ix[]三种方法。其中,ix[]已经被废弃,因此推荐使用loc[]和iloc[]方法。 一、通过loc[]方法根据条件选择行 loc[]方法通过行标签(label)选择行。可以使用以下方式来选择行: 1.使用一组条件选择行 import pandas as…

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