当前位置: 首页 > 面试题库 >

Python-在pandas groupby中将列表中的行分组

长孙德惠
2023-03-14
问题内容

我有一个像这样的熊猫数据框:

a b
A 1
A 2
B 5
B 5
B 4
C 6

我想按第一列分组并获得第二列作为行中的列表:

A [1,2]
B [5,5,4]
C [6]

可以使用pandas groupby来做类似的事情吗?


问题答案:

你可以使用以下方法groupby对感兴趣的列进行分组,然后apply list对每个分组进行分组:

In [1]: df = pd.DataFrame( {'a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6]})
        df

Out[1]: 
   a  b
0  A  1
1  A  2
2  B  5
3  B  5
4  B  4
5  C  6

In [2]: df.groupby('a')['b'].apply(list)
Out[2]: 
a
A       [1, 2]
B    [5, 5, 4]
C          [6]
Name: b, dtype: object

In [3]: df1 = df.groupby('a')['b'].apply(list).reset_index(name='new')
        df1
Out[3]: 
   a        new
0  A     [1, 2]
1  B  [5, 5, 4]
2  C        [6]


 类似资料:
  • 我需要从一个列表中追加一些重复的值到一个子列表中,让我用一个例子来解释: 我有一个名为的变量,它包含大写字母字符串和符号。 我的最终目标是拥有这个数组: 在示例中,我需要将所有的符号分组到原始中的子列表中,我想过在数组中迭代,找到当前附近的所有符号,然后创建第二个数组,但我想也许还有更多的pythonic我可以做的,有什么想法吗?

  • 问题内容: 我有一个关于将数据框列中的列表分成多行的问题。 假设我有这个数据框: 我想要数字的每个单一组合,因此最终结果将是: 因为现在我得到以下结果: 为了得到上面的结果,我做了: 问题答案: 与斯科特·波士顿(Scott Boston)的建议类似,我建议您分别展开各列,然后将它们合并在一起。 例如,对于“职位”: 并且,一起:

  • 本文向大家介绍Python将列表中的类似子字符串分组,包括了Python将列表中的类似子字符串分组的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将编写一个程序,该程序将列表中的相似子字符串分组。让我们看一个例子来更清楚地理解它。 输入值 输出结果 我们将使用itertools模块中的groupby方法来解决该问题。该GROUPBY方法组中的所有类似的字符串转换为ITER对象。对于给定的

  • 问题内容: 我具有以下数据结构(列表列表) 我希望能够 使用函数对列表重新排序,以便我可以按列表中的每个项目分组。例如,我希望能够按第二列分组(以便所有21列在一起) 使用函数仅显示每个内部列表中的某些值。例如,我想减少此列表,使其仅包含“ 2somename”的第四个字段值 所以列表看起来像这样 问题答案: 对于第一个问题,您应该做的第一件事是使用运算符模块中的itemgetter按第二个字段对

  • 问题内容: 我将数据保存在postgreSQL数据库中。我正在使用Python2.7查询此数据并将其转换为Pandas DataFrame。但是,此数据框的最后一列中包含值的字典(或列表?)。DataFrame看起来像这样: 我需要将此列拆分为单独的列,以便DataFrame如下所示: 我遇到的主要问题是列表的长度不同。但是所有列表最多只能包含相同的3个值:a,b和c。而且它们始终以相同的顺序出现

  • 我有一个对象列表 销售模式为: 轮班模式为: 如何按名称对中的项目进行分组,然后对相应的销售和班次进行求和?所以,如果我在列表中有两个名称相同的项目,那么将它们分组,并求和其销售额和移动量? 我尝试过stream,但没有成功: 另一种选择是: 在这种情况下,我不知道如何求和相应的销售额和班次 编辑 下面是预期结果的示例: