首页 > 编程语言 >Python 批量合并csv文件

Python 批量合并csv文件

时间:2023-09-28 15:37:24浏览次数:56  
标签:CSV 批量 Python DataFrame df file path csv

import pandas as pd
import glob
import os

# 获取所有CSV文件的路径
file_paths = glob.glob("C:\\Users\\Admin\\Desktop\\数据核对\\*.csv")
# 使用glob.glob函数获取指定目录下所有以.csv为扩展名的文件路径,并将结果存储在file_paths列表中

print(file_paths)  # 打印出这些文件路径供你检查

# 创建一个空的 DataFrame
df = pd.DataFrame()
# 创建一个空的DataFrame,用于存储合并后的数据

# 逐个读取每个CSV文件,并将其添加到DataFrame中
for file_path in file_paths:
    # 读取CSV文件并添加文件名为一列
    temp_df = pd.read_csv(file_path, encoding='gbk')
    # 使用pd.read_csv函数读取CSV文件,encoding参数指定了文件的编码格式,这里使用GBK编码
    file_name = os.path.basename(file_path)
    print(file_name)
    # 使用os.path.basename函数获取文件名(包含扩展名)
    temp_df['file_name'] = file_name
    # 将文件名作为新的一列添加到temp_df中
    df = df.append(temp_df, ignore_index=True)
    # 使用df.append函数将temp_df合并到主DataFrame df中,ignore_index=True表示重新设置行索引

# 将DataFrame写入新的CSV文件中
df.to_csv("C:\\Users\\Admin\\Desktop\\合并数据.csv", index=False)
# 使用df.to_csv函数将合并后的数据保存为新的CSV文件,index=False表示不保存行索引

 

import pandas as pd
import glob
import os

# 使用glob.glob函数获取指定目录下所有以.csv为扩展名的文件路径,并将结果存储在file_paths列表中
file_paths = glob.glob("C:\\Users\\Admin\\Desktop\\数据核对\\*.csv")

# 创建一个空的DataFrame,用于存储合并后的数据
df = pd.DataFrame()

# 循环遍历每个CSV文件,并将其添加到DataFrame中
for file_path in file_paths:
    # 尝试使用不同的编码格式读取CSV文件,直到成功为止
    for encoding in ['utf-8', 'gbk', 'gb2312', 'utf-16', 'iso-8859-1']:
        try:
            # 使用pd.read_csv函数读取CSV文件,encoding参数指定了文件的编码格式
            temp_df = pd.read_csv(file_path, encoding=encoding)
            break  # 如果成功读取,则跳出循环
        except UnicodeDecodeError:  # 如果出现编码错误,则捕获该错误,并继续尝试下一个编码格式
            continue
    else:  # 如果没有任何编码格式成功读取CSV文件,则打印一条错误消息,并继续处理下一个文件
        print(f"无法读取CSV文件:{file_path}")
        continue

    # 使用os.path.basename函数获取文件名(包含扩展名)
    file_name = os.path.basename(file_path)

    # 将文件名作为新的一列添加到DataFrame中
    temp_df['file_name'] = file_name

    # 使用df.append函数将temp_df合并到主DataFrame df中,ignore_index=True表示重新设置行索引
    df = df.append(temp_df, ignore_index=True)

# 使用df.to_csv函数将合并后的数据保存为新的CSV文件,index=False表示不保存行索引
df.to_csv("C:\\Users\\Admin\\Desktop\\合并数据.csv", index=False)

 

标签:CSV,批量,Python,DataFrame,df,file,path,csv
From: https://www.cnblogs.com/lcl-cn/p/17735880.html

相关文章

  • 学习 Python
    CSS是一种样式表语言,用于描述以HTML编写的Web文档的表示形式。它控制网页的外观,包括布局、颜色、字体和间距。在Flask模板中包含您可以通过链接到外部CSS文件或直接在HTML模板中嵌入样式,在Flask模板中包含CSS样式。创建CSS样式表您可以创建CSS样式表来定义网页......
  • 用 Python 自动生成小学四则运算题目
    这个作业属于哪个课程软件工程这个作业要求在哪里结对项目这个作业的目标熟悉多人协作成员......
  • Python sanic AsyncIOScheduler 的单例模式
    sanic是个异步框架。可以配置多个worker,执行定时任务时,也会执行多遍。期望通过单例模式,确保只运行一次。解决思路。AsyncIOScheduler函数有没有自带的单例模式,答案无。网上有没有相关做法,搜集半天,没有太好的办法。试过全局变量,协程共享变量等,均无效。试着用进程的共享变量来解......
  • 结对项目:用python实现一个自动生成小学四则运算题目的命令行程序
    这个作业属于哪个课程计科21级12班这个作业的要求在哪里结对项目这个作业的目标了解结对项目的过程团队成员信息姓名学号肖兴明3121004712徐强3121004713Github链接GithubPSPPSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实......
  • 【Python | 进阶】提高你的Python技能,99个让代码更简洁、更快的秘密技巧, 确定不来看看
    ......
  • go go代码中调用python脚本
    目录gogo代码中调用python脚本写个简单的py脚本再写个go的脚本gogo代码中调用python脚本有的官方文档只提供了java和python的sdk,而我们需要用他们封装的服务,只能调用python或java的接口,接下来演示怎么调用python写个简单的py脚本importsysdefmain():args1=sys.ar......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-17-处理鼠标悬停
    1.简介有些测试场景或者事件,playwright根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作。比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某一个元素上方,然后会出现下拉子菜单,第二种就是在搜索输入过程,选择自动补全的字段。关......
  • pptx:Python的PPT操作库
    1.安装模块Windows用户打开命令行输入:pipinstallpython-pptxMac用户打开终端/Terminal输入:pip3installpython-pptx使用windows系统,如果出现无法安装情况,可以在cmd模式下输入网址选择国内清华镜像。pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplepython-pptx......
  • python解决ModuleNotFoundError No module named 'HTMLTestRunner'问题修改
    1、报错截图2、解决方法:(1)py2:从http://tungwaiyip.info/software/HTMLTestRunner.html下载HTMLTestRunner.py并将文件放到python2安装目录的Lib下,然后再次运行文件,可成功运行! (2) py3:a: 从http://tungwaiyip.info/software/HTMLTestRunner.html下载HTMLTestRunner.py......
  • python 安装 cv2 - 已解决
    <!--more-->python安装cv2-已解决建议收藏提供多种操作,一定有一种适合你的情况就这么个情况,就是装不上。本文没一句废话,仔细阅读。1.传统方式1(执行一遍,一条条试)可尝试python3-mpipinstall--upgradepippipinstallcv2pip3installopencv-python国内......