错误:缺少1个必需的位置参数:“在索引时间发生”

时间:2019-04-15 12:51:05

标签: pandas mutable

我正在尝试根据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')

2 个答案:

答案 0 :(得分:0)

您的功能

def dt(_,g): 

有两个参数。

DataFrame.apply采用仅接受一个参数(Seriesndarray)的函数(或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()