如何对 pandas 数据框列进行分组并将不同的组保存到同一 Excel 文件中的多个工作表中?

Yub*_*sal 3 python excel pandas

我有一个数据框。我需要将同一组数据保存在同一个 Excel 文件的不同工作表中

我有以下数据集

District    Prefix  Quota       
A           98426   783
A           98427   223
A           98446   127
A           98626   51
B           98049   167
B           98079   153
B           98140   120
B           98159   139
B           98169   182
B           98249   86
B           98426   588
B           98446   96
C           98049   104
C           98060   68
C           98149   65
C           98150   68
C           98159   86
C           98160   80
C           98169   113

Run Code Online (Sandbox Code Playgroud)

重现代码:

import pandas as pd
df = pd.DataFrame([
    ['A', 98426, 783],
    ['A', 98427, 223],
    ['A', 98446, 127],
    ['A', 98626, 51],
    ['B', 98049, 167],
    ['B', 98079, 153],
    ['B', 98140, 120],
    ['B', 98159, 139],
    ['B', 98169, 182],
    ['B', 98249, 86],
    ['B', 98426, 588],
    ['B', 98446, 96],
    ['C', 98049, 104],
    ['C', 98060, 68],
    ['C', 98149, 65],
    ['C', 98150, 68],
    ['C', 98159, 86],
    ['C', 98160, 80],
    ['C', 98169, 113]
], 
    columns=['District', 'Prefix', 'Quota'])
Run Code Online (Sandbox Code Playgroud)

所以你可以在“District”列中看到A、B和C数据。现在我必须创建一个名为“District_Data”的 Excel 文件,并将 A 的数据保存在名为“A”的单独工作表中,将 B 保存在名为“B”的单独工作表中,依此类推。但所有工作表都应位于“District_Data”excel 文件中

Dor*_*ori 5

您可以按地区对数据进行分组。

如果只有一个索引列:

data = df.groupby('District')
writer = pd.ExcelWriter('District_data.xlsx', engine='xlsxwriter')
for row,group in data:
    group.to_excel(writer, sheet_name=row)
writer.save()
Run Code Online (Sandbox Code Playgroud)

对于多索引场景,将 for 循环替换为:


for row, group in data.groupby(level=0):

Run Code Online (Sandbox Code Playgroud)