在Python中,合并CSV文件可以通过多种方式实现,以下是几种常见的方法:
方法一:使用csv模块
import csvimport glob获取所有CSV文件的路径file_paths = glob.glob('path/to/csv/files/*.csv')创建一个空的字典,用于存储合并后的数据merged_data = {}逐个读取每个CSV文件,并将其添加到字典中for file_path in file_paths:with open(file_path, 'r') as csvfile:reader = csv.DictReader(csvfile)for row in reader:假设每个文件都有一个唯一的标识符,例如文件名identifier = os.path.basename(file_path)merged_data[identifier] = row将字典写入新的CSV文件with open('merged.csv', 'w', newline='') as outfile:fieldnames = merged_data[next(iter(merged_data))].keys()writer = csv.DictWriter(outfile, fieldnames=fieldnames)writer.writeheader()for identifier, row in merged_data.items():writer.writerow(row)
方法二:使用pandas库
import pandas as pdimport glob获取所有CSV文件的路径file_paths = glob.glob('path/to/csv/files/*.csv')创建一个空的DataFrame,用于存储合并后的数据df = pd.DataFrame()逐个读取每个CSV文件,并将其添加到DataFrame中for file_path in file_paths:temp_df = pd.read_csv(file_path, encoding='gbk') 根据需要设置编码格式file_name = os.path.basename(file_path)temp_df['file_name'] = file_name 添加文件名作为新的一列df = df.append(temp_df, ignore_index=True)将合并后的DataFrame保存为新的CSV文件df.to_csv('merged.csv', index=False)
方法三:使用csv模块以追加模式合并
import csvimport glob获取所有CSV文件的路径file_paths = glob.glob('path/to/csv/files/*.csv')以追加模式打开源文件with open('source.csv', 'a', newline='') as csv_file:创建csv的写对象,并传入表头writer = csv.DictWriter(csv_file, fieldnames=header)批量写入读取到的数据for row in reader:writer.writerow(row)
以上方法展示了如何使用Python的csv模块和pandas库来合并CSV文件。请根据你的具体需求选择合适的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/91679.html