我有一个由10列组成的数据集,我目前正在使用groupby()函数获取前6列的平均值,然后使用groupby()获取其他4列的最小值和最大值。问题是,当我试图将结果放入新的Excel工作表时,我一直收到错误,即'list'对象没有属性'to_excel'
avg = df.groupby('column1')[['column2' , 'column3', 'column4' ,'column5', 'column6', 'column7' ]].mean()
c8= (df.assign(c8=df['column8'].abs())
.groupby(['column1'])['column8'].agg([('min' , 'min'), ('max', 'max')])
.add_prefix('c8'))
c9= (df.assign(c9=df['column9'].abs())
.groupby(['column1'])['column9'].agg([('min' , 'min'), ('max', 'max')])
.add_prefix('c9'))
c10= (df.assign(c10=df['column'].abs())
.groupby(['column1'])['column10'].agg([('min' , 'min'), ('max', 'max')])
.add_prefix('c10'))
df = [avg , c8, c9, c10]
#print(df)
wb = pd.ExcelWriter('C:filepath.xlsx' , engine='xlsxwriter')
df.to_excel(wb,sheet_name='Results')
wb.save()
每当我单独运行任何函数时,它们都工作得很好,问题是当我把它们放在一起时。
我期待的是一个Excel表格,其中填写了相应的数据,如下所示:
column1 column2 column3 column4 column5 column6 column7 c8min c8max c9min c9max c10min c10max
1条答案
按热度按时间pxyaymoc1#
我会这样做
GroupBy.agg
在一个 * 单杆 *:或者按照您的方法,您可以使用
concat
来避免AttributeError
:顺便说一下,为什么你要分配新列
cx
而不使用它们?我想你需要这样的东西: