pandas - 在 Pandas 数据框中使用 groupby,但它会创建具有相同值的多行
问题描述
我有一个包含 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 来处理。或者任何其他解决方案也会有所帮助。提前致谢!
解决方案
推荐阅读
- python - Python OpenPyxl 检测所有合并单元格时遇到问题
- c# - C# 委托和事件
- python - 按顺序对要上传的文件列表进行排序
- css - 删除左右两侧的页脚空白
- javascript - 每次状态更改时重新渲染子组件
- git - 如何在 git repo 中找到丢失的文件
- python - 如何将 wsgi 服务器更改为 localhost?
- python - tensorflow更新后如何导入BeamSearchDecoder?
- r - 如果搜索词在列表中不可用,则忽略或显示 NA - R
- python - 使用 python-telegram-bot 或 telethon 在 Telegram 中输入联系人