需求
将 files
文件夹下的所有文件的数据合并成一个总文件(注意:每个文件的表头都一致)
实现步骤
- 获取 files 文件夹下的所有文件名称
- 读取每个文件的数据
- 将每个文件的数据进行拼接
- 保存至新的文件
获取 files 文件夹下的所有文件名称
首先,我们应该思考的是,Pytho
n有没有对应的模块可以帮助我们去获取指定文件夹下所有文件的名称,那文件夹实际上是在操作系统上的(比如:windows
,ma
c),所以,我们就可以使用 Python
与操作系统交互的模块:os模块
# 导入os
import os
# 改变当前工作路径 至所有文件所在的文件夹下
need_dir = os.chdir(r"C:\Users\lenovo\Desktop\data_ana02\04-auto_merge_files\files")
# 列出所有文件的名称 以列表呈现
need_file_name = os.listdir(need_dir)
need_file_name
读取每个文件的数据
在这儿,我们就需要思考,怎么读取文件的数据?在 Python
中,那是有相当多的模块可以读取呀,比如:xlrd
,openpyxl
,numpy
,pandas
…那选择谁呢?在这个应用场景下,我强烈推荐 pandas
# 导入pandas
import pandas as pd
# 读取 云南白药.csv
ylby_df = pd.read_csv("云南白药.csv")
# 显示前五条
ylby_df.head()
大家会发现,读取不同的文件只需要传入不同的文件名就行,那我们怎么读取文件夹下列表的所有文件的数据呢?
- 使用 for 循环遍历文件列表
- 再读取数据
# 取出每个文件的名称
for file_name in need_file_name:
# 读取每个文件的数据
data = pd.read_csv(f"{file_name}")
print(data.head())
截取其中一部分
将每个文件的数据进行拼接
怎么将数据如下拼接呢?
那还是使用到我们的老朋友pandas
,我们可以使用 pandas.concat()
堆叠拼接。比如,两个表格的拼接代码如下:
那所有文件的数据怎么拼接?此时我们就需要借助到 pandas.concat()
拼接数据,实质上是将每个 df
数据装进一个 列表或者元组中,传进去
# 定义 空的数据列表
data_li = []
# 取出每个文件的名称
for file_name in need_file_name:
# 读取每个文件的数据
data = pd.read_csv(f"{file_name}")
# 将数据添加到 空的数据列表中
data_li.append(data)
# print(len(data_li)) # 列表长度返回为4 ,说明构建成功
# 拼接所有文件的数据
all_data = pd.concat(data_li)
# 获取数据的形状 为620行,说明成功
all_data.shape
保存至新的文件
保存文件直接使用 df.to_csv() 就好了
all_data.to_csv("总数据.csv")
题外话
感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python兼职渠道推荐*
学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
若有侵权,请联系删除