熊猫数据帧争用-Python
我有一个熊猫数据帧争用-Python,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧,如下所示: ID Emp1 Emp2 Emp3 1 John NaN Alex 2 John Steve Alex 3 John Steve Alex 4 Clint Jorge NaN 我想将上述数据帧转换为如下内容: John Emp1 [1,2,3] Clint Emp1 [4] Steve Emp2 [2,3] Jorge Emp2 [4] Alex Emp3 [1,2] 因此,基本上,对于每个列(Emp1、Emp2、Emp3),查找“唯
数据帧
,如下所示:
ID Emp1 Emp2 Emp3
1 John NaN Alex
2 John Steve Alex
3 John Steve Alex
4 Clint Jorge NaN
我想将上述数据帧转换为如下内容:
John Emp1 [1,2,3]
Clint Emp1 [4]
Steve Emp2 [2,3]
Jorge Emp2 [4]
Alex Emp3 [1,2]
因此,基本上,对于每个列(Emp1、Emp2、Emp3),查找“唯一”值(drop NaN),对于每个唯一值,获取“ID”和“column name”您需要
将数据融化成长格式。然后,您需要执行groupby聚合以压缩“名称”和“Emp”数据:
您需要融化您的数据以获得长格式。然后,您需要执行groupby聚合以压缩“名称”和“Emp”数据:
new_df = (df
.melt(id_vars="ID", var_name="emp", value_name="name")
.dropna()
.groupby(["name", "emp"], as_index=False)
.agg(list)
.sort_values(["emp", "name"], ascending=[True, False])
)
print(new_df)
name emp ID
1 Clint Emp1 [4]
2 John Emp1 [1, 2, 3]
3 Jorge Emp2 [4]
4 Steve Emp2 [2, 3]
0 Alex Emp3 [1, 2, 3]