将分组的项目保存到不同的Excel工作表

时间:2017-04-30 10:47:53

标签: python excel pandas numpy

我有一个excel文件,我想根据列名称“步骤号”进行分组并且想要相应的值。这是我写的一段代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
fpath=('/Users/Anil/Desktop/Test data.xlsx')
df=pd.read_excel(fpath)
data=df.loc[:,['Step No.','Parameter','Values']]
grp_data=pd.DataFrame(data.groupby(['Step No.','Values']).size().reset_index())
grp_data.to_excel('/Users/Anil/Desktop/Test1 data.xlsx')

数据按我的意愿分组。

Step No.    Values
    1            62
    1            62.5
    1            63
    1            66.5
    1            68
    1            70
    1            72
    1            76.5
    1            77
    2            66.5
    2            67
    2            69
    3            75.5
    3            77

但是,我想要在不同的excel表中对应于每个步骤号的数据,即所有值对应于一张纸中的步骤No.1,另一张纸中的步骤号2等等。我想我应该使用某种迭代,但不知道究竟是什么类型。

1 个答案:

答案 0 :(得分:1)

这应该这样做:

from pandas import ExcelWriter

steps = df['Step No.'].unique()
dfs = [df.loc[df['Step No.']==step] for step in steps]
def save_xls(list_dfs, xls_path):
    writer = ExcelWriter(xls_path)
    for n, df in enumerate(list_dfs):
        df.to_excel(writer,'sheet%s' % n)
    writer.save()
save_xls(dfs, 'YourFile.xlsx')