【问题标题】:Creating multiple spreadsheets in one excel file with Python Pandas使用 Python Pandas 在一个 Excel 文件中创建多个电子表格
【发布时间】:2017-03-09 15:04:35
【问题描述】:

作为标题,我需要使用 Pandas 将多个电子表格创建到一个 excel 文件中。而this threadthis one 所有提供的解决方案,我想我的情况有点不同。这两种情况都使用类似于:

writer = pd.ExcelWriter('output.xlsx')
DF1.to_excel(writer,'Sheet1')
DF2.to_excel(writer,'Sheet2')
writer.save()

但是,问题是我无法同时在内存中保留多个数据帧,因为每个数据帧都太大了。我的数据可能是这个的复杂版本: df = pd.DataFrame(dict(A=list('aabb'), B=range(4), C=range(6,10)))
Out: A B C 0 a 0 6 1 a 1 7 2 b 2 8 3 b 3 9

我打算使用grplist 中的['a', 'b', 'c'] 项来执行某种计算,并最终在data['A'] == ac 时生成单独的电子表格:

data = pd.read_csv(fileloc)
grplist = [['a','b','c'],['d','e','f']]
for groups, numbers in zip(grplist, range(1, 5)):
    for category in groups:
        clean = data[(data['A'] == category) & (data['B'] == numbers)]['C']
        # --------My calculation to generate a dataframe--------
        my_result_df = pd.DataFrame(my_result)
        writer = ExcelWriter('my_path_of_excel')
        my_resultdf.to_excel(writer, 'Group%s_%s' % (numbers, category[:4]))
        writer.save()
        gc.collect()

遗憾的是,我的代码不会创建多个电子表格,因为 groups, numbers 会循环通过。我只能在我的 Excel 中的单个电子表格中获得最后一个结果。我能做什么?

这是我在这里的第一篇文章。我希望我遵守每条规则,以便这个线程可以结束。如果有什么需要修改或改进的,请告诉我。谢谢你的帮助:)

【问题讨论】:

    标签: python excel pandas


    【解决方案1】:

    考虑df

    df = pd.DataFrame(dict(A=list('aabb'), B=range(4)))
    

    遍历组并打印

    for name, group in df.groupby('A'):
        print('{}\n\n{}\n\n'.format(name, group))
    
    a
    
       A  B
    0  a  0
    1  a  1
    
    
    b
    
       A  B
    2  b  2
    3  b  3
    

    to_excel

    writer = pd.ExcelWriter('output.xlsx')
    for name, group in df.groupby('A'):
        group.to_excel(writer, name)
    writer.save()
    writer.close()
    

    【讨论】:

    • 感谢pirsquared 的及时回复。但是,这并不能解决我的问题。我添加了几行来描述我的数据和代码。我想我要问的最终问题是:“如何一次创建多个电子表格”,而不是使用.groupby() 将它们组合在一起。如果我对您的理解不正确,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 2012-10-16
    • 1970-01-01
    • 2020-08-21
    相关资源
    最近更新 更多