Pandas实现Excel文件读取,增删,打开,保存操作

  • Post category:Python

下面是关于Pandas实现Excel文件读取、增删、打开、保存操作的详细教程。

一、Excel文件读取

Pandas可以轻松地读取和处理Excel文件。我们可以使用pandas中的read_excel()方法来读取Excel文件。下面是一个读取Excel文件的示例:

import pandas as pd

# 读取Excel文件的方式一
df = pd.read_excel(r'file_name.xlsx', sheet_name='Sheet1')
print(df)

# 读取Excel文件的方式二
excel_file = pd.ExcelFile(r'file_name.xlsx')
df = pd.read_excel(excel_file, 'Sheet1')
print(df)

这里有两种方式来读取Excel文件,第一种方式直接使用read_excel()函数读取,第二种方式使用ExcelFile()函数读取文件,然后再使用read_excel()方法读取指定的sheet。

二、Excel文件增删

Pandas不仅可以读取Excel文件数据,还可以对数据进行修改。我们可以使用Pandas提供的DataFrame对象的各种操作方法对Excel文件进行修改,比如增加、删除行和列等。下面是一个示例:

import pandas as pd

# 读取Excel文件
df = pd.read_excel(r'file_name.xlsx', sheet_name='Sheet1')

# 增加一列
df['New Column'] = [1, 2, 3, 4, 5]
print(df)

# 删除一列
df = df.drop('New Column', axis=1)
print(df)

# 增加一行
new_row = [6, 7, 8, 9, 10]
df.loc[len(df)] = new_row
print(df)

# 删除一行
df = df.drop(index=4)
print(df)

在上面的示例中,我们首先读取了一个Excel文件。接着,我们使用df[‘New Column’] = [1, 2, 3, 4, 5]方法向表格中增加了一列数据。然后,我们使用df.drop(‘New Column’, axis=1)方法将这一列数据删除。接着,我们使用df.loc[len(df)] = new_row方法在表格的最后一行增加了一行数据。最后,我们使用df = df.drop(index=4)方法将这一行数据删除。

三、Excel文件打开和保存

Pandas可以使用to_excel()方法将DataFrame对象保存到Excel文件。下面是一个示例:

import pandas as pd

# 读取Excel文件
df = pd.read_excel(r'file_name.xlsx', sheet_name='Sheet1')

# 进行一系列修改

# 保存Excel文件
df.to_excel(r'new_file_name.xlsx', sheet_name='Sheet1', index=False)

在上面的示例中,我们首先读取了一个Excel文件。接着,我们对DataFrame对象进行了修改。最后,我们使用df.to_excel()方法将修改后的DataFrame对象保存到一个新的Excel文件中。

另外,我们还可以使用ExcelWriter()方法将DataFrame对象写入到一个已经存在的Excel文件中。下面是一个示例:

import pandas as pd

# 读取Excel文件
df = pd.read_excel(r'file_name.xlsx', sheet_name='Sheet1')

# 进行一系列修改

# 将修改后的DataFrame对象写入到已存在的Excel文件中
with pd.ExcelWriter('file_name.xlsx', engine='openpyxl', mode='a') as writer:
    df.to_excel(writer, sheet_name='Sheet1', index=False, startrow=len(df) + 2)

在上面的示例中,我们首先读取了一个Excel文件。接着,我们对DataFrame对象进行了修改。最后,我们使用pd.ExcelWriter()方法将修改后的DataFrame对象写入到已经存在的Excel文件的指定sheet中。值得注意的是,将DataFrame对象写入Excel时必须指定writer对象、sheet_name和startrow参数,startrow为开始行的位置,在已有数据的行后面写入,使用len(df) + 2可以确保写入时不会覆盖已有数据。