【问题标题】:Writing a Python Created Pivot Table using Pandas to a Excel Document使用 Pandas 将 Python 创建的数据透视表写入 Excel 文档
【发布时间】:2020-11-16 19:52:19
【问题描述】:

我一直致力于在 python 中自动化一系列报告。我一直在尝试从导入的 csv (binlift.csv) 创建一系列数据透视表。我发现 Pandas 库对此非常有用,但是我似乎找不到任何可以帮助我将 Pandas 创建的数据透视表写入我的 excel 文档(Template.xlsx)的东西,并且想知道是否有人可以提供帮助。到目前为止,我已经编写了以下代码

import openpyxl
import csv
from datetime import datetime
import datetime
import pandas as pd
import numpy as np


file1 = "Template.xlsx"   # template file
file2 = "binlift.csv"     # raw data csv


wb1 = openpyxl.load_workbook(file1) # opens template
ws1 = wb1.create_sheet("Raw Data") # create a new sheet in template called Raw Data


summary = wb1.worksheets[0]    # variables given to sheets for manipulation
rawdata = wb1.worksheets[1]



headings = ["READER","BEATID","LIFTYEAR","LIFTMONTH","LIFTWEEK","LIFTDAY","TAGGED","UNTAGGEDLIFT","LIFT"]
df = pd.read_csv(file2, names=headings)

pivot_1 = pd.pivot_table(df, index=["LIFTYEAR", "LIFTMONTH","LIFTWEEK"], values=["TAGGED","UNTAGGEDLIFT","LIFT"],aggfunc=np.sum)
pivot_2 = pd.pivot_table(df, index=["LIFTYEAR", "LIFTMONTH"], values=["TAGGED","UNTAGGEDLIFT"],aggfunc=np.sum)
pivot_3 = pd.pivot_table(df, index=["READER"], values=["TAGGED","UNTAGGEDLIFT","LIFT"],aggfunc=np.sum)

print(pivot_1)
print(pivot_2)
print(pivot_3)

wb1.save('test.xlsx')enter code here

【问题讨论】:

    标签: python python-3.x pandas pivot-table openpyxl


    【解决方案1】:

    pandas 中有一个选项可以写入“xlsx”文件。 这里基本上我们得到了数据透视表的所有索引(在级别 0),然后我们逐个遍历这些索引以子集表并写入表的那部分。

    writer = pd.ExcelWriter('output.xlsx')
    
    for manager in pivot_1.index.get_level_values(0).unique():
        temp_df = pivot_1.xs(manager, level=0)
        temp_df.to_excel(writer, manager)
    
    writer.save()
    

    【讨论】:

    • 太好了,这段代码创建了一个新的 Excel 工作簿。无论如何,我可以将数据透视表附加到现有工作表(Template.xlsx)。更具体地说是在特定的单元格范围内?
    猜你喜欢
    • 2021-05-24
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    相关资源
    最近更新 更多