gpt4 book ai didi

python - 使用 Python Pandas 取消透视/堆叠透视表

转载 作者:太空宇宙 更新时间:2023-11-03 17:13:39 25 4
gpt4 key购买 nike

我有以下 Excel 表格 (xls):

Quarter Q1    Q1    Q1
Year 2013 2014 2015
Company A A A
PA 500 300 963
NY 200 150 1500

我想使用 Python Pandas 创建下表:

Quarter  Year State Company Amount
Q1 2013 PA A 500
Q1 2014 PA A 300
Q1 2015 PA A 963
Q1 2013 NY A 200
Q1 2014 NY A 150
Q1 2015 NY A 1500

编辑:我根据 @jezrael 建议使用了以下代码:

import pandas as p
df = p.read_excel('test.xls')
df = df.set_index('0')
df = df.T.stack().reset_index(name='idx')
df.columns = ['Quarter', 'Year', 'Company', 'State', 'Amount']
df = df[['Quarter', 'Year', 'State', 'Company', 'Amount']]
df = df.sort_values(by=['State'], ascending=['False']).reset_index(drop=True)
print(df)

我不断收到以下错误:

File "pandas\hashtable.pyx", line 676, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12216)
KeyError: '0'

我也尝试过使用 0,与 KeyError: 0 出现同样的错误

最佳答案

非常接近你想要的:

df = pd.read_excel('test.xls', header=None, index_col=0)

print df
# 1 2 3
#0
#Quarter Q1 Q1 Q1
#Year 2013 2014 2015
#Company A A A
#PA 500 300 963
#NY 200 150 1500

#set indexes
df = df.T.set_index(['Quarter', 'Year', 'Company'])

#stack and reset index
df = df.stack().reset_index(name='idx')

#rename and reorder columns
df.columns = ['Quarter', 'Year', 'Company', 'State', 'Amount']
df = df[['Quarter', 'Year', 'State', 'Company', 'Amount']]

#sort by column State
df = df.sort_values(by=['State'], ascending=['False']).reset_index(drop=True)
print df
# Quarter Year State Company Amount
#0 Q1 2013 NY A 200
#1 Q1 2014 NY A 150
#2 Q1 2015 NY A 1500
#3 Q1 2013 PA A 500
#4 Q1 2014 PA A 300
#5 Q1 2015 PA A 963

关于python - 使用 Python Pandas 取消透视/堆叠透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33850718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com