python处理激光雷达(三)

##任务:

PS:激光雷达数据是十分钟记录一次,一小时就有6个文件。

因此,在(二)的基础上增加任务——每6个文件进行一次提取,分别输出至一个文件,并以原文件名命名,循环读取输出。

PS:df.append() 是将所有数据按顺序添加到一列,如果列名不同,则在另一列的下一行添加。

import pandas as pd
import os
import glob
dir=r'E:\test\vertical\test'
list_tif=glob.glob(r'E:\test\vertical\test\*')
out_path='E://test//vertical//'
for root, dirs, files in os.walk(dir):
    for i in range(0,len(files),6):
        filename = files[i]
        print(filename)

for i in range(0,len(list_tif),6): 
    df1=pd.read_csv(list_tif[i],skiprows=6,header=None,sep=';',names=['a','b','c','d','e'])
    df2=pd.read_csv(list_tif[i+1],skiprows=6,header=None,sep=';',names=['a','b','c','d','e'])
    df3=pd.read_csv(list_tif[i+2],skiprows=6,header=None,sep=';',names=['a','b','c','d','e'])
    df4=pd.read_csv(list_tif[i+3],skiprows=6,header=None,sep=';',names=['a','b','c','d','e'])
    df5=pd.read_csv(list_tif[i+4],skiprows=6,header=None,sep=';',names=['a','b','c','d','e'])
    df6=pd.read_csv(list_tif[i+5],skiprows=6,header=None,sep=';',names=['a','b','c','d','e'])
    
    df_empty=pd.DataFrame()
    for filename in [df1,df2,df3,df4,df5,df6]:
        df_empty=df_empty.append(filename,ignore_index=True)
        df_out=df_empty.a
        df_out.to_csv(out_path + files[i] + '.csv',header=False,index=False)
    del df1
    del df2
    del df3
    del df4
    del df5
    del df6

因为要把各时次的数据进行计算,需要把各时次的同类数据分列存放,故重新编了以下程序。

PS:还是初学者,所以程序可能还不简便。

#导入用到的库
import numpy as np
import pandas as pd
import os
import glob

#dir输入路径设置
dir=r'E:\test\vertical\test'
#生成文件夹下的列表
list_tif=glob.glob(r'E:\test\vertical\test\*')
#设置输出路径
out_path='E://test//vertical//'
#设置6个数据为1个循环,因为十分钟观测一次,变量filename是为了输出文件命名。
for root, dirs, files in os.walk(dir):
    for i in range(0,len(files),6):
        filename = files[i]
#设置6个数据为1个循环,定义df1-6的变量,提取激光雷达的第一列,并分别设置列名为abcdef         
for i in range(0,len(list_tif),6): 
    df1=pd.read_csv(list_tif[i],skiprows=6,header=None,sep=';',usecols=[0],names=['a'])
    df2=pd.read_csv(list_tif[i+1],skiprows=6,header=None,sep=';',usecols=[0],names=['b'])
    df3=pd.read_csv(list_tif[i+2],skiprows=6,header=None,sep=';',usecols=[0],names=['c'])
    df4=pd.read_csv(list_tif[i+3],skiprows=6,header=None,sep=';',usecols=[0],names=['d'])
    df5=pd.read_csv(list_tif[i+4],skiprows=6,header=None,sep=';',usecols=[0],names=['e'])
    df6=pd.read_csv(list_tif[i+5],skiprows=6,header=None,sep=';',usecols=[0],names=['f'])
    
#新建一个4000行6列的数值全为0的数组,之前想用各列和df1-6分别相加,所以数值设为0,但尝试了输出的值为NaN,原因暂不清楚,故代码写成了替换。
    data = np.zeros((4000,6))
    df = pd.DataFrame(data,columns = ['a','b','c','d','e','f'],)
    df['a']=df1['a']
    df['b']=df2['b']
    df['c']=df3['c']
    df['d']=df4['d']
    df['e']=df5['e']
    df['f']=df6['f']
#输出到csv文件,设置输出路径+文件名+后缀
    df.to_csv(out_path + files[i] + '.csv',header=False,index=False)
#清空变量
    del df1
    del df2
    del df3
    del df4
    del df5
    del df6

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值