【发布时间】:2018-07-26 22:38:08
【问题描述】:
在 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
“价值”列是费用值。 “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
...
【问题讨论】:
-
你试过在命令行末尾添加
.reset_index()pd.pivot_...吗?
标签: python pandas numpy dataframe pivot-table