我有一个重复列表,这些列表是从透视的excel数据中获得的Employe名称-技能-值对。我将数据加载到数据框Staff中,如下所示:
Name Skill Attribute Value
Bob S Certification ACA
Bob S Certification GSA
Bob S Degree Comp Sci
Kate Certification BCA
我现在想用python将数据旋转回去,以便它
Name Certification Degree
Bob S ACA Comp Sci
Bob S GSA Lit
Kate BCA None
当我尝试使用以下方法在python中旋转时:
Staff=Staff.drop_duplicates([‘Name’,’Skill Attribute’])
Staff=Staff.pivot(‘Name’, ‘Skill Attribute’, ‘Value)
我丢失了价值数据。例如,鲍勃·S(Bob S)拥有两项认证,但只有一项显示:
Name Certification Degree
Bob S ACA Comp Sci
Kate BCA None
尝试在不使用前面的drop_duplicates行的情况下使用数据透视功能会导致“ ValueError:索引包含重复的条目,无法重塑”
如何进行数据透视,以便保留所有价值数据,并允许每个员工姓名输入多个技能属性值?
答案 0 :(得分:0)
df.set_index(
['Name', df.groupby(['Name', 'Skill Attribute']).cumcount(), 'Skill Attribute']
).Value.unstack().reset_index('Name').rename_axis(None, 1).reset_index(drop=True)
Name Certification Degree
0 Bob S ACA Comp Sci
1 Bob S GSA None
2 Kate BCA None