繁体   English   中英

如何基于列中的值将数据框导出为Excel工作表

[英]How to export a dataframe to excel with sheets based on values in a column

我已经在Python中基于多个Excel文件创建了一个数据框,现在我想将合并的数据导出到一个具有多个工作表的.xlsx文件中,这些工作表基于一列中的值,并以该列中的值命名这些工作表。

使用下面图像中的示例,我目前可以将所有数据导出到.xlsx文件。

我想做的是按区域列过滤数据,并将与区域列中与Zone1标志关联的所有数据导出到名为“ Zone1”的工作表,并将与标志Zone2相关联的所有数据导出到名为“工作表”的工作表Zone2”。 理想情况下,在第二张图像中,突出显示的数据是当前“ Zone1”工作表中显示的唯一数据,而未突出显示的数据将在“ Zone2”工作表中显示

我正在使用以下代码提取数据,合并和导出。

import pandas as pd
import numpy as np
import glob

glob.glob("/Users/xxx/Desktop/PythonTests/Test_Zone*.xlsx")

all_data = pd.DataFrame()
for f in     glob.glob("/Users/xxx/Desktop/PythonTests/Test_Zone*.xlsx"):
df = pd.read_excel(f)
all_data = all_data.append(df,ignore_index=True)
all_data.to_excel("/Users/xxx/Desktop/merged.xlsx",index=False)

我目前可以导出的内容

我想出口什么

假设你有一个数据帧, df ,保存所有的数据(如果有的话已经保存为Excel文件,你可以用df = pd.read_excel('path_to_file.xlsx')可以使用下面的代码按Zone数据df_dict进行子集化,并将每个结果子集数据df_dict保存到字典df_dict

df_dict = {}

for zone in df['Zone'].unique():
    zone_df = df[df['Zone'] == zone]
    df_dict[zone] = zone_df

有了该字典后,可以使用pd.ExcelWriterto_excel将数据帧写入excel文件的单独工作表中:

def save_xlsx(df_dict, path):
    """
    Save a dictionary of dataframes to an excel file, with each dataframe as a seperate page
    """

    with pd.ExcelWriter(path) as writer:
        for key in df_dict:
            df_dict[key].to_excel(writer, key, index=False)

    writer.save()

调用该函数将为您提供所需的结果:

save_xlsx(df_dict, 'path_to_file.xlsx')

如果您想删除工作表名称中的空格(如您在示例中所做的那样),则可以相应地修改save_xlsx函数:

df_dict[key].to_excel(writer, key.replace(' ',''), index=False)

这是我尝试仅导出Zone2而不是1和2的代码”

import pandas as pd
import numpy as np
import glob

#list
glob.glob("/Users/TTT/Desktop/PythonTests/Test_Zone*.xlsx")

ALLDATA = pd.DataFrame()
for f in glob.glob("/Users/TTT/Desktop/PythonTests/Test_Zone*.xlsx"):
    df = pd.read_excel(f)
    ALLDATA = ALLDATA.append(df,ignore_index=True)

    df_dict = {}

for zone in df['Zone'].unique():
    zone_df = df[df['Zone'] == zone]
    df_dict[zone] = zone_df

save_xlsx(df_dict, '/Users/TTT/Desktop/PythonTests/ExportTest.xlsx')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM