如何将Pandas数据保存到Excel多个工作表中?

如何将Pandas数据保存到Excel多个工作表中?

在Python的数据分析库中,Pandas是一款非常常用的工具。而在项目中,有时候需要把Pandas数据保存到Excel文件中的多个工作表中。那么,如何实现呢?

首先,我们需要导入Pandas库和待处理的数据:

import pandas as pd

df = pd.read_csv('example.csv')

接着,为了方便地将数据保存到多个工作表中,我们可以创建一个字典,将工作表名和对应的数据筛选条件(筛选出需要保存到该工作表中的数据)存放在一起。

例如,我们有以下五个工作表:Sheet1, Sheet2, Sheet3, Sheet4, 和 Sheet5。现在要将待处理数据按照以下规则分配到各个工作表中:

  • 工作表Sheet1:第一行包含‘A’和‘C’的数据。
  • 工作表Sheet2:第一行包含‘B’和‘D’的数据。
  • 工作表Sheet3:第二行包含‘C’和‘D’的数据。
  • 工作表Sheet4:第三行包含‘A’的数据。
  • 工作表Sheet5:剩余的所有数据。

那么,我们可以这样创建一个字典来实现:

sheets_dict = {'Sheet1': (df.iloc[:, [0, 2]]),
               'Sheet2': (df.iloc[:, [1, 3]]),
               'Sheet3': (df.iloc[:, [2, 3]]),
               'Sheet4': (df.iloc[:, 0].loc[df.iloc[:, 2] == 'C']),
               'Sheet5': (df.drop(df[(df.iloc[:, 0] == 'A') & (df.iloc[:, 2] == 'C')].index))}

我们可以看到,字典中的值是一个元组,包括用于筛选数据的DataFrame对象。在实际操作中,我们可以根据自己的需要更改字典中的内容,以达到保存不同形式的数据到不同的工作表中的目的。

接下来,我们可以遍历字典,将各个工作表中的数据保存到Excel中:

with pd.ExcelWriter('example.xlsx') as writer:  
    for name, sheet in sheets_dict.items():
        sheet[1:].to_excel(writer, sheet_name=name, index=False, header=False)

我们可以看到,with语句打开了一个ExcelWriter对象,并将其赋值给变量writer。然后,我们使用for循环,遍历字典中的各个工作表,将工作表中的数据保存到Excel文件中。

在实际操作中,我们可以将以上代码封装到一个函数中,方便后续在其他程序中调用:

def save_to_excel(df, filename, sheets_dict):
    with pd.ExcelWriter(filename) as writer:  
        for name, sheet in sheets_dict.items():
            sheet[1:].to_excel(writer, sheet_name=name, index=False, header=False)

最后,我们调用该函数将数据保存到Excel中:

save_to_excel(df, 'example.xlsx', sheets_dict)

这样,我们就可以将Pandas数据保存到Excel的不同工作表中了。下面附上完整的代码示例:

import pandas as pd

df = pd.read_csv('example.csv')

sheets_dict = {'Sheet1': (df.iloc[:, [0, 2]]),
               'Sheet2': (df.iloc[:, [1, 3]]),
               'Sheet3': (df.iloc[:, [2, 3]]),
               'Sheet4': (df.iloc[:, 0].loc[df.iloc[:, 2] == 'C']),
               'Sheet5': (df.drop(df[(df.iloc[:, 0] == 'A') & (df.iloc[:, 2] == 'C')].index))}

def save_to_excel(df, filename, sheets_dict):
    with pd.ExcelWriter(filename) as writer:  
        for name, sheet in sheets_dict.items():
            sheet[1:].to_excel(writer,sheet_name=name, index=False, header=False)

save_to_excel(df, 'example.xlsx', sheets_dict)

结论

通过以上操作,我们可以将Pandas数据保存到Excel的多个工作表中。利用字典存储各个数据筛选条件,我们可以将数据按照不同规则分配到不同的工作表中,实现Excel多个工作表的保存。同时,将其封装成函数,可以方便快捷地在其他程序中调用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程