Сводная таблица Pandas, чтобы превзойти отдельные листы - PullRequest
0 голосов
/ 24 мая 2018

У меня есть сводная таблица pandas, как показано ниже;

Region     Dist     A     B      C
X          T        1     2     0,5
X          V        2     2,5   3
Z          T        3     5     8,6
Y          P        8,6   7,2   3
Y          V        4,5   6,5   5
Z          V        7     3,3   4,8
Y          T        2     1,6   2,2
X          P        3     3,3   2,5
Z          P        5,5   6     8   

, поэтому я сделал все вычисления, и теперь я хочу написать в Excel для публикации, но я не мог найти, как написать это отдельно 'Область, край'.В этом случае это будут 3 рабочих листа как X, Y, Z, но как я могу их кодировать?

Заранее спасибо!

1 Ответ

0 голосов
/ 24 мая 2018

Используйте groupby для зацикливания по группам с ExcelWriter:

with pd.ExcelWriter('file.xlsx') as writer:
    df.groupby('Region').apply(lambda x: x.to_excel(writer, sheet_name=x.name, index=False))

Альтернатива:

with pd.ExcelWriter('file.xlsx') as writer:
    for i, x in df.groupby('Region'):
        x.to_excel(writer, sheet_name=i, index=False)

При необходимостиудалить Region столбец в выводе:

with pd.ExcelWriter('file.xlsx') as writer:
    for i, x in df.groupby('Region'):
        x.drop('Region', axis=1).to_excel(writer, sheet_name=i, index=False)
...