Python 从包含多个重复项的大型数据集创建唯一键
我正在面试一家公司财务部门的一个职位,作为面试过程的最后一轮,我的任务是做一个案例研究,我有24小时的时间来完成它。我得到了一个大约3700行的Excel数据集 第一项任务是清理数据以便进一步分析。基本上,数据相当糟糕。真的很糟糕。我相信这是一个相当不可能和不公平的任务,他们正在给予,但我想给它一个坚实的努力 到处都是重复的数据,并且没有唯一的键来有一个良好的起点来清除数据。但是,有多个员工ID实例 我认为我可以识别employee_id的所有唯一值,然后基于此创建一个新的数据集 由于这是一个财务职位,他们希望我用Excel完成分析,但我无意这样做。我仍然是一个Python新手,但如果我试图用Excel而不是Python清理数据,那就见鬼了 无论如何,如果你已经读到这一点,并能提供任何建议,我将不胜感激。我对大数据集还不是很在行,但我正在学习。我不知道这是否是我应该采取的方法。我只知道Excel文件非常混乱,如果不清理它,就不可能对其进行任何适当的分析 如果你认为我提出的解决方案可行,我将如何着手创建它?另外,我从Excel文件中获得了数据和唯一id,这对我来说不是问题 我还想为每个值保存状态/位置。所以,如果有一个空白的单元格,我需要一个“NaN”或其他什么 这是我对理解数据清理的新手尝试。谢谢你的帮助Python 从包含多个重复项的大型数据集创建唯一键,python,excel,pandas,Python,Excel,Pandas,我正在面试一家公司财务部门的一个职位,作为面试过程的最后一轮,我的任务是做一个案例研究,我有24小时的时间来完成它。我得到了一个大约3700行的Excel数据集 第一项任务是清理数据以便进一步分析。基本上,数据相当糟糕。真的很糟糕。我相信这是一个相当不可能和不公平的任务,他们正在给予,但我想给它一个坚实的努力 到处都是重复的数据,并且没有唯一的键来有一个良好的起点来清除数据。但是,有多个员工ID实例 我认为我可以识别employee_id的所有唯一值,然后基于此创建一个新的数据集 由于这是一个
IDS SUP LMO HI
0 chris 1.0 2.0 2.0
1 chris 9.0 20.0 1.0
2 chris 3.0 2112.0 12.0
3 chris 10.0 12121.0 2112.0
4 mark 1.0 2.0 2.0
5 mark 2.0 1.0 21.0
6 susan 3.0 2.0 1.0
7 susan 1.0 2.0 2.0
8 susan 2.0 1.0 1.0
如果我理解正确,您可以在Excel中设置要查找的表 F2中的公式是唯一的(A2:A12) G2中的公式是
=TEXTJOIN(“,”,FALSE,FILTER(IF(B$2:B$12=“”,“NaN”,B$2:B$12),$F2=$A$2:$A$12))
然后将G2复制到H2和I2。不确定您想要什么,但我认为您可以尝试
df.astype(str).groupby('IDS').agg(','.join)
或者可能是df.groupby('IDS').agg(list)
我想这就是我要找的。我可以在SQL中使用GROUPBY,所以我必须使用这个函数才能使它在Python中工作。非常感谢。如果必须在Excel中执行此操作,请查看Power Query。比较容易做一个GroupBy,然后连接三列。这真的很聪明,谢谢你。非常感谢。我将对此进行快速修复,然后导入Python进行进一步分析。稍后,我将返回并找出如何在Python中100%实现这一点。真是帮了大忙