Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将groupedby项目保存到不同的excel工作表_Python_Excel_Pandas_Numpy - Fatal编程技术网

Python 将groupedby项目保存到不同的excel工作表

Python 将groupedby项目保存到不同的excel工作表,python,excel,pandas,numpy,Python,Excel,Pandas,Numpy,我有一个excel文件,我想根据列名“Step No.”对其进行分组,并需要相应的值。下面是我编写的一段代码: 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_d

我有一个excel文件,我想根据列名“Step No.”对其进行分组,并需要相应的值。下面是我编写的一段代码:

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表中对应每个步骤编号的数据,即一个表中对应步骤编号1的所有值,另一个表中对应步骤编号2的所有值,依此类推。我想我应该使用某种迭代,但不知道具体是哪种迭代。

这应该可以做到:

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')

我试过你的解决办法。但是,对于“[df.loc[df['Step No.]==Step]对于Step in steps]”,存在一个错误“method object is not iterable”。我认为代码应该是:steps=df['Step No.].unique()是的,
unique
是方法,应该被调用。编辑。