python根据索引列合并每个excel的特定列 加上循环怎么做
时间: 2024-01-23 11:42:15 浏览: 92
通过python 将多个excel合并成一个excel
假设有两个Excel文件A.xlsx和B.xlsx,每个文件有三列数据:姓名、性别、年龄。现在需要根据姓名这一列,将两个文件中的数据合并到一个新的Excel文件中。
可以使用pandas库来实现这个需求。具体步骤如下:
1.导入pandas库
```python
import pandas as pd
```
2.读取A.xlsx和B.xlsx文件中的数据,指定索引列为姓名
```python
df_a = pd.read_excel('A.xlsx', index_col='姓名')
df_b = pd.read_excel('B.xlsx', index_col='姓名')
```
3.将两个DataFrame对象合并,指定合并方式为外连接(即保留所有行),并将结果保存到一个新的DataFrame对象中
```python
df_merge = pd.merge(df_a, df_b, how='outer', on='姓名')
```
4.将合并后的数据保存到一个新的Excel文件中
```python
df_merge.to_excel('merge.xlsx')
```
如果需要对多个Excel文件进行合并,可以使用for循环来遍历文件列表,然后依次读取、合并、保存数据。示例代码如下:
```python
import os
# 获取所有Excel文件的文件名
file_list = [f for f in os.listdir('.') if f.endswith('.xlsx')]
# 定义一个空的DataFrame对象
df_merge = pd.DataFrame()
# 遍历所有Excel文件,读取数据并合并
for file_name in file_list:
df_temp = pd.read_excel(file_name, index_col='姓名')
df_merge = pd.merge(df_merge, df_temp, how='outer', on='姓名')
# 将合并后的数据保存到一个新的Excel文件中
df_merge.to_excel('merge.xlsx')
```
注意:如果多个Excel文件中有重复的姓名,那么在合并时会产生重复的行。如果需要去重,可以在合并后使用drop_duplicates()方法来去除重复行。例如:
```python
df_merge.drop_duplicates(inplace=True)
```
阅读全文