python处理激光雷达(二)

该博客展示了如何使用Python的os和pandas库读取一个文件夹中的所有CSV文件,并将它们合并到一个大的DataFrame中。通过os.walk遍历文件夹,对每个文件应用pd.read_csv,然后使用pd.concat将数据整合。最后,将合并后的数据保存到新的CSV文件中。
摘要由CSDN通过智能技术生成

##任务:在(一)的基础上,实现循环提取长时间序列,输出在一个excel/csv中。

##学习历程:

#test1

import os

#path表示路径

path = "E://test//vertical//202204"

filelist = os.listdir(path)

for item in filelist:

print(item)

##打印path路径下的所有文件名

#test2

##glob.glob():该方法返回所有匹配的文件路径列表(list),不包括子文件夹里的文件

import glob

paths = glob.glob(r'C:\Users\83687\Destop\test]*.xlsx')

#获取test文件夹下的所有excel文件路径

data1 = pd.DataFrame(columns=['日期','类型','收入'])#先构建一个空的数据框

for path in paths:#遍历paths目录

    data = pd.read_excel(path)

    data1 = pd.concat([data1,data])

print(data1)

data1.to_excel(r'C:\Users\83687\Destop\test\test.xlsx')

#concatpd.concat是按照某行或某列来合并,而是按照数据中具体的"某一字段"来连接数据。

#test3 对一个文件夹中的所有Excel文件的数据合并至一个Excel(新建)的过程

import os
import pandas as pd

os.chdir(r'=============')
# 写入文件夹位置,=处填入文件夹位置

Result = pd.DataFrame()
# 建立空DataFrame,存储数据

List_df = []
# 建立空List,用于存储每个Excel中的数据
Check_list = []
# 检验列表,用于检验数据是否完整
for Excel_name in os.listdir():
    df = pd.read_excel(Excel_name)
# 若Excel表中存在多个Sheet表,需指定需要合并的Sheet表名
# df = pd.read_excel(Excel_name,sheet_name = +++)

    Check_list.append(df.shape[0])
    df = df[["#######","#######"]]
# 选择所需要的列,如果是一列,则只需传入一个列名;如果同时选择多列,则传入多个列名即可,多个列名用列表形式封存
# 如果多个excel文件中的列名一致,则不需此项
# #处填入列名

    List_df.append(df)
    
print(sum(check_list))
Merge_data = Result.append(List_df)
print(Merge_data.shape[0])

#保存为新的Excel文件,且所有数据在一个Sheet中
Merge_data.to_excel(r'***************') 

 #test4:

引自Python3 pandas库(26) 一次读取多个excel文件并合并 - 知乎  https://zhuanlan.zhihu.com/p/31541902

首先是导入pandas库和os库:

第二步是定义文件夹的路径:

第三步是根据文件里表格的列名新建一个空的DataFrame

第四步是利用os库的walk功能遍历文件夹里的所有文件,并读取文件名字。

os.path.join能够将文件夹的路径和文件名字合并成每个文件的完整路径,

然后将每个文件读取,再与空的DataFrame合并

import pandas as pd
import os
inputdir=r'C:\Users\数据\Desktop\新建文件夹'
df_empty=pd.DataFrame(columns=['名称','列1','列2'])
for parents, dirnames, filenames in os.walk(inputdir):
    for filename in filenames:
        df=pd.read_excel(os.path.join(parents,filename))
        df_empty=df_empty.append(df,ignore_index=True)

Python os.walk() 方法 | 菜鸟教程  https://www.runoob.com/python/os-walk.html 

import os
for root, dirs, files in os.walk(".", topdown=False):
    for name in files:
        print(os.path.join(root, name))
    for name in dirs:
        print(os.path.join(root, name))

  • root 所指的是当前正在遍历的这个文件夹的本身的地址
  • dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
  • files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)

实现任务代码如下:

import pandas as pd
import os

inputdir=r'E:\test\vertical\test'
df_empty=pd.DataFrame()
for parents, dirnames, filenames in os.walk(inputdir):
    for filename in filenames:
        df=pd.read_csv(os.path.join(parents,filename),skiprows=6,header=None,sep=';',names=['a','b','c','d','e'])
        df_empty=df_empty.append(df,ignore_index=True)
        df1=df_empty.a

df1.to_csv(r'E:/test/vertical/2out.csv',header=False,index=False)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值