对熊猫中相同行的列表理解[重复]

Posted

技术标签:

【中文标题】对熊猫中相同行的列表理解[重复]【英文标题】:List comprehension over the same rows in pandas [duplicate] 【发布时间】:2019-02-18 15:30:39 【问题描述】:

我想知道是否有一种巧妙的方法可以在存在相同行的情况下“折叠”熊猫数据框。例如:

df =

col_a  col_b
    a     1
    b     2
    b     3
    c     4
    d     5
    d     6
    d     7

我需要的是:

df_new = 

col_a     col_b
    a         1
    b    [2, 3]
    c         4
    d [5, 6, 7]

绝对应该包括groupby

df_new = df.groupby('col_a').apply(....)

但如何有效地实现括号中的位,我很困惑。

【问题讨论】:

df.groupby('col_a').col_b.apply(list) 应该可以工作。我敢肯定这个问题是一个重复 确实如此。谢谢。我应该删除问题吗? 【参考方案1】:

您可以将list 申请为col_b

df.groupby('col_a')['col_b'].apply(list)

col_a
a          [1]
b       [2, 3]
c          [4]
d    [5, 6, 7]
Name: col_b, dtype: object

【讨论】:

天啊,我从来没有觉得这么傻:)【参考方案2】:
s = df.groupby('col_a')['col_b'].apply(list)
df['col_c'] = df['col_a'].map(s)

print(df)

col_a   col_b   col_c
0   a   1   [1]
1   b   2   [2, 3]
2   b   3   [2, 3]
3   c   4   [4]
4   d   5   [5, 6, 7]
5   d   6   [5, 6, 7]
6   d   7   [5, 6, 7]

【讨论】:

以上是关于对熊猫中相同行的列表理解[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何优雅地对熊猫中的一系列列表进行热编码[重复]

在熊猫数据框中对重复的列 ID 进行分组

将熊猫数据框列列表值拆分为重复行[重复]

将列表转换为熊猫数据框python [重复]

在列表的熊猫列中添加特定的列表元素[重复]

列表中的熊猫数据框,分别指定标题[重复]