在 Pandas 中处理大型数据透视表

Posted

技术标签:

【中文标题】在 Pandas 中处理大型数据透视表【英文标题】:handle large pivot tables in Pandas 【发布时间】:2018-10-01 02:31:10 【问题描述】:

我正在创建一个非常大的数据透视表,但在 Python IDE 或笔记本中我只能看到部分结果。

我希望所有结果都采用更好的格式,例如 Excel 表格。

但如果尝试将结果导出到 excel,我只能看到 D 计算字段,而不是 A 和 C 变量中的数据。

您对在 pandas 中更好地管理大型数据透视表有什么想法吗?

import numpy as np
import pandas as pd

N = 100
df = pd.DataFrame(
    'A': pd.date_range(start='2016-01-01',periods=N,freq='D'),
    'x': np.linspace(0,stop=N-1,num=N),
    'y': np.random.rand(N),
    'C': np.random.choice(['Low','Medium','High'],N).tolist(),
    'D': np.random.normal(100, 10, size=(N)).tolist()
    )

my_table=pd.pivot_table(df,index=["A","C"],values=["D"], aggfunc='sum',margins=True)


writer = pd.ExcelWriter('C:/pandas_positioning.xlsx', engine='xlsxwriter')


my_table.to_excel(writer, sheet_name='my_data',
         startrow=7, startcol=4, header=False, index=False)

writer.save()

【问题讨论】:

一面没有。 CD 列不需要 .tolist() 【参考方案1】:

这应该可以解决您的问题

my_table.to_excel(writer, sheet_name='my_data',
     startrow=7, startcol=4, header=False)

AC 是索引,您没有将它们写入文件。

【讨论】:

以上是关于在 Pandas 中处理大型数据透视表的主要内容,如果未能解决你的问题,请参考以下文章

在 Pandas 数据透视表中显示映射标签而不是代码

Pandas:排序数据透视表

具有多索引的 Pandas 子数据透视表和总数据透视表

Pandas:如何在数据透视表数据框中仅添加最新日期

Pandas:编写一个包含所有列的数据透视表以表现出色

Pandas 从数据透视表中绘图