【问题标题】:How do I convert a PivotTable that was made into Pandas / Numpy in a DataFrame?如何在 DataFrame 中将 PivotTable 转换为 Pandas / Numpy?
【发布时间】: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


【解决方案1】:

您可以将对象包装在 DataFrame 函数中

pd.DataFrame(pd.pivot_table(despesas_atuais_final,index=["nome_deputado","Ano", "Mes"], values=["Valor"], aggfunc=np.sum))

【讨论】:

  • 谢谢。但这不起作用: MultiIndex: 3874 entries, (ABELARDO CAMARINHA, 2015, 3) to (WELSON GASPARINI, 2018, 5) 数据列(共 1 列):Valor 3874非空 float64 数据类型:float64(1) 内存使用量:42.9+ KB
猜你喜欢
  • 2019-08-04
  • 2020-02-10
  • 1970-01-01
  • 2020-07-12
  • 2015-06-13
  • 1970-01-01
  • 2020-08-20
  • 1970-01-01
  • 2020-11-09
相关资源
最近更新 更多