Python 从包含多个重复项的大型数据集创建唯一键

Python 从包含多个重复项的大型数据集创建唯一键,python,excel,pandas,Python,Excel,Pandas,我正在面试一家公司财务部门的一个职位,作为面试过程的最后一轮,我的任务是做一个案例研究,我有24小时的时间来完成它。我得到了一个大约3700行的Excel数据集 第一项任务是清理数据以便进一步分析。基本上,数据相当糟糕。真的很糟糕。我相信这是一个相当不可能和不公平的任务,他们正在给予,但我想给它一个坚实的努力 到处都是重复的数据,并且没有唯一的键来有一个良好的起点来清除数据。但是,有多个员工ID实例 我认为我可以识别employee_id的所有唯一值,然后基于此创建一个新的数据集 由于这是一个

我正在面试一家公司财务部门的一个职位,作为面试过程的最后一轮,我的任务是做一个案例研究,我有24小时的时间来完成它。我得到了一个大约3700行的Excel数据集

第一项任务是清理数据以便进一步分析。基本上,数据相当糟糕。真的很糟糕。我相信这是一个相当不可能和不公平的任务,他们正在给予,但我想给它一个坚实的努力

到处都是重复的数据,并且没有唯一的键来有一个良好的起点来清除数据。但是,有多个员工ID实例

我认为我可以识别employee_id的所有唯一值,然后基于此创建一个新的数据集

由于这是一个财务职位,他们希望我用Excel完成分析,但我无意这样做。我仍然是一个Python新手,但如果我试图用Excel而不是Python清理数据,那就见鬼了

无论如何,如果你已经读到这一点,并能提供任何建议,我将不胜感激。我对大数据集还不是很在行,但我正在学习。我不知道这是否是我应该采取的方法。我只知道Excel文件非常混乱,如果不清理它,就不可能对其进行任何适当的分析

如果你认为我提出的解决方案可行,我将如何着手创建它?另外,我从Excel文件中获得了数据和唯一id,这对我来说不是问题

我还想为每个值保存状态/位置。所以,如果有一个空白的单元格,我需要一个“NaN”或其他什么

这是我对理解数据清理的新手尝试。谢谢你的帮助

     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%实现这一点。真是帮了大忙