用python合并两个csv文件的实现方法,以及对表头和空行的处理

在做两个csv文件合并时,其实挺简单,但是中间遇到的问题比较多,所以统一在这里总结一下踩过的坑,希望可以给到大家帮助。

首先说一下,一开始使用的办法,刚开始希望通过第一个换行’\n‘地方往后去合并,这样就可以去除表头了;但是遇到的一个问题就是有一个文件的数据为空,也就是说除了表头没有数据,这时任务就会报错,所以把idex(’\n’)改成了find(’\n’),此时确实不报错了,但是出现了另一个问题,就是把另外一个csv文件中所有的数据当作一行去合并了,至此失败!

于是想到了使用pandas中的dataframe来实现。
两个csv文件相同的表结构,分别为test1.csv和test2.csv,读取test2.csv文件中的数据合并到test1.csv中:

第一步:读取数据

import pandas as pd

df = pd.read_csv('test2.csv',encoding = 'utf-8')
print(df) #可以打印出来看下数据长什么样子

以上读取的数据中含有表头和索引,那么在写入test1.csv文件时就要做一些处理。

第二步:打开test1.csv文件并写入读取的test2.csv文件的数据

with open('test1.csv') as f:
	df.to_csv(f,mode = 'a+', index = False, header = False)

以上代码要注意几点:
1、mode为’a+‘模式,就是追加数据,而非覆盖test1.csv文件;
2、index和header都设为“False”,就是忽略表头和索引,这样就解决了合并时表头的困惑。

好了,至此数据合并就完成了,有问题,欢迎大家来交流哦!

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用Python合并两个CSV文件,你可以使用pandas库中的merge函数或concat函数。下面是两种方法的示例代码: 方法一:使用merge函数 ```python import pandas as pd data1 = pd.read_csv("path/to/file1.csv") data2 = pd.read_csv("path/to/file2.csv") merged_data = pd.merge(data1, data2, how='outer') merged_data.to_csv("path/to/output.csv", index=False) ``` 方法二:使用concat函数 ```python import pandas as pd import glob input_path = "path/to/input/folder/*.csv" output_path = "path/to/output.csv" all_files = glob.glob(input_path) dataframes = \[\] for file in all_files: df = pd.read_csv(file) dataframes.append(df) merged_data = pd.concat(dataframes) merged_data.to_csv(output_path, index=False) ``` 以上代码中,你需要将"path/to/file1.csv"和"path/to/file2.csv"替换为你要合并两个CSV文件的路径。如果你使用的是方法二,你还需要将"path/to/input/folder/*.csv"替换为包含要合并的所有CSV文件文件夹的路径。 希望这可以帮助到你! #### 引用[.reference_title] - *1* *3* [python两个文件夹中的多个csv表格合并在一起](https://blog.csdn.net/QMU111/article/details/129993138)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [用python合并两个csv文件实现方法,以及对表头空行处理](https://blog.csdn.net/m0_59571772/article/details/118294446)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值