我正在尝试根据groupby函数为两列创建的不同数据框在python中编写不同的工作表名称。
list_dfs=[]
TT=Dataframe.groupby(['change','x2'])
for group,name in TT:
list_dfs.append(group)
writer = pd.ExcelWriter('output.xlsx')
def dt(_,g):
for _,g in Dataframe.groupby (Dataframe.index):
print (g)
_.to_excel(writer,g)
writer.save()
DT=Dataframe.apply(dt)
它一直给我这个错误
TypeError: ("dt() missing 1 required positional argument: 'g'", 'occurred at index time')
答案 0 :(得分:0)
您的功能
def dt(_,g):
有两个参数。
DataFrame.apply
采用仅接受一个参数(Series
或ndarray
)的函数(或lambda)。
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html
尝试将函数dt
的签名更改为:
def dt(g):
答案 1 :(得分:0)
我只是做一个小技巧,如下所示。
Dataframe['x2']=res
TT=Dataframe.groupby(['change',res])
writer = ExcelWriter('output.xls')
for name,group in TT:
group.to_excel(writer, sheet_name='Sheet_{}'.format(name))
writer.save()