首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Pandas dataframe中使用groupby,但它会创建多个具有相同值的行

问在Pandas dataframe中使用groupby,但它会创建多个具有相同值的行
EN

Stack Overflow用户
提问于 2021-01-29 22:47:42
回答 1查看 25关注 0票数 1

我有一个有3列的数据帧,标题,区域,代码。有不同的值,包括相同标题的区域和代码列中的空格。我希望将所有这些由空格分隔的区域和代码的值组合在一起,这样一个标题就有一行。我试着用下面的代码做这件事

代码语言:javascript
复制
df['area']=df['area'].replace("\\N",np.nan)
df['code']=df['code'].replace("\\N",np.nan)
df['area'] =df['area'].fillna('')
df['code'] =df['code'].fillna('')
df[['area','code']] = df.groupby(['title'])[['area','code']].transform(lambda x: ' '.join(x))

我得到了我想要的东西,但是这段代码正在创建具有相同数据的多个行。例如,如果我的数据集如下所示:

代码语言:javascript
复制
title   area    code
a       yv       f
a       ty       \N
a       dz       r
b       yv       \N
b       \N       f
c       dz       f

然后我希望我的输出是:

代码语言:javascript
复制
title   area          code
a       yv ty dz       f r
b       yv dz          f
c       dz             f

但是我得到了3个重复的a行,2个b行和1个c行,包含相同的值。我可以稍后删除重复的值,但我的数据帧非常大(包含大约240万行),并且我无法执行此命令:

代码语言:javascript
复制
df[['area','code']] = df.groupby(['title'])[['area','code']].transform(lambda x: ' '.join(x))

为了它。因此,如果我可以并排删除重复的值,这将是很有帮助的,这样它就不需要占用太多的RAM来进行处理。或者任何其他的解决方案也是有帮助的。提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-30 13:48:27

有几种方法可以做到这一点。最简单的方法(IMO)是:

代码语言:javascript
复制
df = df.groupby(['title']).agg(" ".join).reset_index()

你也可以看到this类似的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65956637

复制
相关文章

相似问题

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