如何转换表格,使列标题进入表格,表格值成为列标题?

问题描述 投票:0回答:1

如何在 Python 中使用 pandas 制作这张表:

data = [['4/04/2023','地板','桌子','屋顶','油漆',''],['4/05/2023','','地板',' Tables','Roof','Paint'],['4/06/2023','Paint','','Floors','Tables','Roof'],['4/07/2023', '屋顶','油漆','','地板','桌子']]

df = pd.DataFrame(data, columns=['Date', 'Jim', 'Bob', 'Ed', 'James', 'Joe'])

看起来像这样?我想我必须使用 melt 和 Pivot,但我不知道如何让它工作。

python pandas transform
1个回答
1
投票

我设法做到了,看看:

#let's create some initial data
data = [['4/04/2023','Floors','Tables','Roof','Paint',''],['4/05/2023','','Floors','Tables','Roof','Paint'],['4/06/2023','Paint','','Floors','Tables','Roof'],['4/07/2023','Roof','Paint','','Floors','Tables']]
df = pd.DataFrame(data, columns=['Date', 'Jim','Bob','Ed','James','Joe'])

#apply the transformations
df2 = df.melt(id_vars="Date", value_name='Items')
df3 = df2.pivot(index="Date", columns='Items', values='variable')
df3 = df3[["Floors","Tables","Roof", "Paint"]] #change the order

结果我得到了这个:

© www.soinside.com 2019 - 2024. All rights reserved.