Python 如何将相同的类别列置于数据帧中的单个标题下?
我是新来的熊猫,面临着一个想法的困难,要解决这个问题,有人能帮我找到一个方法来解决这个问题 我有一个以下格式的源数据帧 这里我分享生成源数据帧的代码:Python 如何将相同的类别列置于数据帧中的单个标题下?,python,pandas,dataframe,pivot-table,data-analysis,Python,Pandas,Dataframe,Pivot Table,Data Analysis,我是新来的熊猫,面临着一个想法的困难,要解决这个问题,有人能帮我找到一个方法来解决这个问题 我有一个以下格式的源数据帧 这里我分享生成源数据帧的代码: df = pd.DataFrame({"Employee ID":[1, 2, 3, 4, 5], "Name":["A", "B", "C", "D", "E"], &quo
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"]})
打印(df)
我想把它转换成下面的格式
我试过使用pivot table和其他工具,但没有多大帮助,有人能帮我理解和解决这个问题吗
提前感谢:)您可以使用自定义函数,然后如果需要,通过列名称替换值添加,但首先通过以下方式将不处理的列转换为多索引:
可能使用简单的输入数据作为文本和执行的输出?图像不太好。嗨,@jezrael非常感谢你的清晰解释:)效果如预期!!
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