【问题标题】:Group dataframe and aggregate data from several columns into a new column将数据框分组并将多列中的数据聚合到新列中
【发布时间】:2021-09-20 16:31:16
【问题描述】:

我想按列 a 对这个数据框进行分组,并创建一个新列 (d),其中包含来自列 b 和列 c 的所有值。

data_dict = {'a': list('aabbcc'),
             'b': list('123456'),
             'c': list('xxxyyy')}

df = pd.DataFrame(data_dict)

从此...

到这里

我已经找到了一种方法,

df['d'] = df['b'] + df['c']
df.groupby('a').agg({'d': lambda x: ','.join(x)})

但是有没有更多的熊猫方式

【问题讨论】:

  • 这对我来说似乎很不错

标签: python pandas dataframe pandas-groupby


【解决方案1】:

我认为“更多熊猫”很难定义,但如果你想避开临时栏,你可以直接在系列上groupby agg

g = (df['b'] + df['c']).groupby(df['a']).agg(','.join).to_frame('d')

g:

       d
a       
a  1x,2x
b  3x,4y
c  5y,6y

【讨论】:

    猜你喜欢
    • 2018-02-17
    • 2021-04-27
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 2018-11-19
    • 1970-01-01
    相关资源
    最近更新 更多