python - 如何每行仅合并一次数据框
问题描述
抱歉,我对这一切都很陌生,所以请原谅我可能提出的任何愚蠢问题。
我正在尝试使用熊猫合并来自salesforce的一些报告,
我有两个报告:
并想制作: 综合报告
我尝试合并、连接和对齐数据框,但是,因为两者共享相同的索引,我的工厂报告的第一行重复了 5 次,即:
我的下一个想法是使用 .align(),然后使用 .duplicated() 返回一个布尔系列,显示哪些行重复,并清除重复行的内容。如果我要使用这种方法,我怎么能清除一行的内容?
此外,这似乎效率低下且难以做到,还有更优雅的解决方案吗?
干杯
解决方案
假设您的最终结果不需要重复的“DJR 编号”列。我们可以根据 DJR Number 加入两个 Dataframe。Duplicated 函数将返回一系列关于它们是否重复的布尔值。如果它们为 True,我们将为其分配 null 值。
merged = labour.merge(plant,on='DJR Number')
merged.loc[merged['DJR Number'].duplicated(),['Date_y','Foreman_y','Plant','Plant Hours']] = np.NaN
如果您想要更清晰的结果,请改为合并三列。
merged = labour.merge(plant,on=['DJR Number','Date','Foreman'])
merged.loc[merged['DJR Number'].duplicated(),['Plant','Plant Hours']] = np.NaN
这不会导致任何重复的列。
请参阅Pandas Duplicated以获取文档。
推荐阅读
- c# - HttpClient 不返回 URI 的 json 值
- clojure - 是否可以将两个函数应用于 Clojure 中的列表?
- javascript - Angular FormControl 模式验证器不适用于正则表达式
- java - 如何获取输入元素的文本属性?- 网络驱动程序
- amazon-web-services - 命令“维护:安装”未定义
- node.js - 如果存在,则在 mongodb 中增加嵌套字段值或创建嵌套字段
- php - 带有laravel的网址中的问号
- imagemagick - 使用 imagemagick 在图像前添加文本
- c++ - C++ promise.set_value 在 linux 下因未知错误而失败
- ios - Safari IOS 在屏幕顶部有可点击的元素对 iPhone 上的横向效果不太好