在python3和pandas中,我具有以下数据框:
despesas_atuais_final.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 82318 entries, 0 to 82317
Data columns (total 18 columns):
Ano 82318 non-null object
CNPJ 82318 non-null object
Deputado 82318 non-null object
Fornecedor 82318 non-null object
Matricula 82318 non-null int64
Mes 82318 non-null int64
Tipo 82318 non-null object
Valor 82318 non-null float64
cnpj_raiz_fornecedor 82318 non-null object
codigo_unico 82318 non-null object
nome_deputado 82318 non-null object
uf 82318 non-null object
nome_completo 82318 non-null object
sequencial 82318 non-null object
cpf 82318 non-null object
nome_urna 82318 non-null object
partido_eleicao 82318 non-null object
situacao 82318 non-null object
dtypes: float64(1), int64(2), object(15)
memory usage: 11.9+ MB
“ Valor”列是费用值。 “ nome_deputado”列中列出了进行支出的人员的姓名。 “ Ano”是支出的年份。 “ Mes”是支出的月份,以数字表示。
我制作了数据透视表以了解每个人每年的每月支出:
pd.pivot_table(despesas_atuais_final,index=["nome_deputado","Ano", "Mes"], values=["Valor"], aggfunc=np.sum)
Valor
nome_deputado Ano Mes
ABELARDO CAMARINHA 2015 3 3,345.40
4 4,843.97
5 15,738.48
6 18,245.08
7 23,953.70
8 27,587.43
9 27,058.59
10 24,117.43
11 20,984.07
2016 2 12,008.00
3 28,415.86
4 24,187.94
5 27,776.08
6 26,755.00
7 26,478.03
8 29,930.60
...
请问有一种方法可以将此数据透视表转换为数据框?像这样:
nome_deputado Ano Mes Valor
ABELARDO CAMARINHA 2015 3 3,345.40
ABELARDO CAMARINHA 2015 4 4,843.97
ABELARDO CAMARINHA 2015 5 15,738.48
...
答案 0 :(得分:1)
您可以将对象包装在DataFrame函数中
pd.DataFrame(pd.pivot_table(despesas_atuais_final,index=["nome_deputado","Ano", "Mes"], values=["Valor"], aggfunc=np.sum))