如何解决如何在熊猫数据框中的单个标题下添加相同类别的列?
我是大熊猫的新手,面对一个难以理解的想法,要解决这个问题,有人可以帮助我解决这个问题。
我在这里共享代码以生成源数据帧:
df = pd.DataFrame({"Employee ID":[1,2,3,4,5],"Name":["A","B","C","D","E"],"Departments":["hr","hr,manager","manager","developer","tester,manager,developer"],"Groups":["group-1","group-2,group-3","","group-1"]})
print(df)
我已经尝试过使用数据透视表和其他stackover flow example,但并没有太大帮助,有人可以帮助我了解和解决此问题的方法。
预先感谢:)
解决方法
您可以将自定义函数与Series.str.get_dummies
一起使用,然后如果需要用列名替换值,请添加numpy.where
,但首先将DataFrame.set_index
转换为不用于处理MultiIndex
的列:
def f(x):
m = x.str.get_dummies(',').astype(bool)
a = np.where(m,m.columns,'')
return pd.DataFrame(a,columns=m.columns,index=x.index)
df1 = df.set_index(['Employee ID','Name'])
df = pd.concat([f(df1[x]) for x in df1.columns],axis=1,keys=df1.columns)
print (df)
Departments Groups
developer hr manager tester group-1 group-2 group-3
Employee ID Name
1 A hr group-1
2 B hr manager group-2 group-3
3 C manager
4 D developer
5 E developer manager tester group-1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。