使用Python横向合并excel文件的实例

  • Post category:Python

下面是使用Python横向合并excel文件的实例的完整实例教程。

1. 准备工作

首先,我们需要安装Python所需的库,其中包括pandasopenpyxl。我们可以使用以下命令进行安装。

pip install pandas openpyxl

接下来,我们需要准备合并的Excel文件,将它们放在同一个文件夹下,以便我们可以方便地读取它们。在本例中,我们假设要合并file1.xlsxfile2.xlsx这两个文件。

2. 读取Excel文件

使用pandas库可以方便地读取Excel文件。我们可以使用以下代码读取Excel文件并将它们存储在DataFrame中。

import pandas as pd

df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')

3. 处理表头

接下来,我们需要处理表头,以便将多个文件的列合并到同一行。我们可以使用以下代码将df2的表头重命名为始于第二列的唯一名称。

df2.columns = ['col_' + str(i+1) if i != 0 else 'key' for i in range(len(df2.columns))]

4. 合并数据

现在我们已经处理好了两个Excel文件,可以开始将它们合并在一起。我们可以使用以下代码将两个DataFrame合并在一起,具体有哪些参数可以根据需求去修改。

df = pd.merge(df1, df2, on='key', how='outer')

5. 保存结果

最后,我们需要将合并的结果保存到新的Excel文件中。我们可以使用以下代码将DataFrame保存为Excel文件。

df.to_excel('result.xlsx', index=False)

示例说明

以下是例子说明:

示例一

假设我们有两个Excel文件file1.xlsxfile2.xlsx,其中file1.xlsx中有两列(’key’和’value_1’),共有三行数据,file2.xlsx中有两列(’key’和’value_2’),共有两行数据。这两个文件都在同一个文件夹下。

我们可以使用以下代码将这两个Excel文件横向合并,并将结果保存为result.xlsx

import pandas as pd

df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')

df2.columns = ['col_' + str(i+1) if i != 0 else 'key' for i in range(len(df2.columns))]

df = pd.merge(df1, df2, on='key', how='outer')

df.to_excel('result.xlsx', index=False)

示例二

假设我们有三个Excel文件data1.xlsxdata2.xlsxdata3.xlsx,其中每个文件都有一列(’key’)和若干列数值型数据。这三个文件都在同一个文件夹下。

我们可以使用以下代码将这三个Excel文件横向合并,并将结果保存为result.xlsx

import os
import pandas as pd

files = ['data1.xlsx', 'data2.xlsx', 'data3.xlsx']
dfs = []

for file in files:
    df = pd.read_excel(os.path.join(data_folder, file))
    df.columns = ['col_' + str(i+1) if i != 0 else 'key' for i in range(len(df.columns))]
    dfs.append(df)

df_merge = pd.concat(dfs, axis=1)
df_merge.drop_duplicates(subset='key', inplace=True)

df_merge.to_excel('result.xlsx', index=False)

在这个例子中,我们首先遍历了所有的Excel文件,并将它们读取到DataFrame中。然后,我们将每个DataFrame的列重命名为始于第二列的唯一名称,并将它们存储在一个列表中。最后,我们将所有的DataFrame使用concat函数横向连接起来,去掉重复的行,并将结果保存在result.xlsx文件中。