我有一个有3列的数据帧,标题,区域,代码。有不同的值,包括相同标题的区域和代码列中的空格。我希望将所有这些由空格分隔的区域和代码的值组合在一起,这样一个标题就有一行。我试着用下面的代码做这件事
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))我得到了我想要的东西,但是这段代码正在创建具有相同数据的多个行。例如,如果我的数据集如下所示:
title area code
a yv f
a ty \N
a dz r
b yv \N
b \N f
c dz f然后我希望我的输出是:
title area code
a yv ty dz f r
b yv dz f
c dz f但是我得到了3个重复的a行,2个b行和1个c行,包含相同的值。我可以稍后删除重复的值,但我的数据帧非常大(包含大约240万行),并且我无法执行此命令:
df[['area','code']] = df.groupby(['title'])[['area','code']].transform(lambda x: ' '.join(x))为了它。因此,如果我可以并排删除重复的值,这将是很有帮助的,这样它就不需要占用太多的RAM来进行处理。或者任何其他的解决方案也是有帮助的。提前感谢!
发布于 2021-01-30 13:48:27
https://stackoverflow.com/questions/65956637
复制相似问题