帮我用python写一个合并多个文件夹下的CSV程序,要求只保留一个标题行,添加一列标注文件来源
时间: 2023-05-25 22:02:27 浏览: 57
Sure! 下面是一个Python的程序,用于合并多个文件夹下的CSV文件。程序保留一个标题行,添加一列标注文件来源。
```python
import os
import glob
import pandas as pd
# 输入多个文件夹路径,输出一个包含所有csv文件的列表
def get_csv_files(path_list):
csv_files = []
for folder_path in path_list:
folder_csv_files = glob.glob(os.path.join(folder_path, '*.csv'))
csv_files.extend(folder_csv_files)
return csv_files
# 合并csv文件
def merge_csv_files(csv_files):
# 初始化一个空的DataFrame
combined_csv_data = pd.DataFrame()
# 逐个读取csv文件并将它们添加到combined_csv_data中
for file in csv_files:
# 读取CSV文件并删除除第一行以外的标题行
dataframe = pd.read_csv(file, skiprows=[i for i in range(1,1000) if i != 0])
# 添加一列标注文件来源,并将来源设置为文件夹的名称
filename = os.path.basename(file)
foldername = os.path.basename(os.path.dirname(file))
dataframe.insert(0, 'file_source', foldername)
# 将文件中的数据添加到combined_csv_data中
combined_csv_data = pd.concat([combined_csv_data, dataframe])
# 将合并的数据保存到一个CSV文件中
combined_csv_data.to_csv("merged.csv", index=False)
# 合并两个文件夹中的CSV文件
folders = ['folder1', 'folder2']
csv_files = get_csv_files(folders)
merge_csv_files(csv_files)
```
上面的程序可以使用 get_csv_files() 函数获取文件夹中所有的 CSV 文件,使用 merge_csv_files() 函数合并这些文件并添加标注文件来源,然后将合并的数据保存到 merged.csv 文件中。
注意:这个程序只会保留一个标题行,如果每个 CSV 文件的标题行不同,则最后的合并文件可能不包含所有的列。如果需要保留所有的标题行,请注意调整代码。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)