首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何只聚合一栏大熊猫python 2.7

如何只聚合一栏大熊猫python 2.7
EN

Stack Overflow用户
提问于 2021-01-09 09:51:26
回答 2查看 157关注 0票数 2

我尝试基于这样的一列"col1“进行聚合,并保持与其他列相同的值:

代码语言:javascript
复制
df_input 

       col1      col2    col3    col4  
0       ID1      DE      69      min-8     
1       ID1      DZ      69      min-8
2       ID3      DA      54      min-15
3       ID3      AC      54      min-15
4       ID3      RC      54      min-15
5       ID8      UC      2       min-40
6       ID8      TC      2       min-40
7       ID8      VC      2       min-40
8       ID8      WC      2       min-40
9       ID7      XC      4       min-7



df_output 

           col1      col2             col3    col4  
    0       ID1      DE,DZ            69      min-8     
    1       ID3      DA,AC,RC         54      min-15
    2       ID8      UC,TC,VC,WC      2       min-40
    3       ID7      XC               4       min-7
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-09 10:19:33

让我们试着破解下面的代码。

首先,将数据按list

  • Let's col1分组,然后对分组对象执行.agg。然后,在col2上使用lambda函数来获取它在一个

  • 中的所有元素--使用'first',以表明我们只想保留E 114Col3<代码>E 215的第一个元素,并且col4

  • Then,重置索引。<>H 220F 221

代码语言:javascript
复制
agg_df = (df.groupby('col1')
      .agg({'col2': lambda x: x.tolist(),'col3':'first','col4':'first'})
      .reset_index())     

print(agg_df)

  col1              col2  col3    col4
0  ID1          [DE, DZ]    69   min-8
1  ID3      [DA, AC, RC]    54  min-15
2  ID7              [XC]     4   min-7
3  ID8  [UC, TC, VC, WC]     2  min-40

为了将col2从存储在list中的值转换为正确的string,我们可以使用,将其元素进行join

代码语言:javascript
复制
agg_df['col2'].apply(lambda x: ','.join(str(i) for i in x))

Out[16]: 
0          DE,DZ
1       DA,AC,RC
2             XC
3    UC,TC,VC,WC
Name: col2, dtype: object  
票数 0
EN

Stack Overflow用户

发布于 2021-01-09 10:59:31

根据索菲兹的答案,一行代码可以解决你的问题。

代码语言:javascript
复制
df = df.groupby('col1').agg({'col2':lambda x: ",".join(x),'col3':np.mean,'col4':'first'}).reset_index()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65641270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档