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

问题描述 投票:0回答:2

我试图根据从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')
pandas mutable
2个回答
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):

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()
© www.soinside.com 2019 - 2024. All rights reserved.