Python提取多个CSV表的指定列,合成⼀个多列CSV表
Python提取多个CSV表的指定列合成⼀个多列CSV表
最近,需要根据ENVI中ROI导出的csv表格,计算植被指数的相关性,共上百个表,需要把每个表的固定列数据整合到⼀个表上计算相关性。⼿动操作真的太累了,于是就想试试Python代码。
效果展⽰
可以看到,代码将四个表中前⾯的元数据和表头都忽略,只提取了最后⼀列的数据,并根据⽤表格名称中的VI(植被指数)来作为表头,防⽌分不清每⼀列数字所代表的含义。
import pandas as pd
import numpy as np
import os
def get_file(path):# 创建⼀个空列表
python怎么读取excel某一列files = os.listdir(path)
list1 =[]
listVI=[]
for file in files:
if not os.path.isdir(path +file):# 判断该⽂件是否是⼀个⽂件夹
f_name =str(file)
VI_name=f_name[8:-4]#读取⽂件名称中的VI名称
#print(f_name)
tr ='/'# 多增加⼀个斜杠
filename = path + tr + f_name
#filename = f_name
list1.append(filename)#得到所有
listVI.append(VI_name)
return(list1,listVI)
#返回⼀个⽂件名列表;⼀个VI名称列表,⽤于为新创建表格的列命名
File=get_file('**/python_try')[0]#输⼊表格路径,这俩⼀样
VI=get_file('**/python_try')[1]
#print(File,VI)
dFrame={}#创建字典,把每个表格数据的最后⼀列提取出来,存储到字典中
for x in range(32):
varfile=File[x]
VI_name=VI[x]
df = pd.read_csv(varfile,header=8,names=[VI_name],usecols=[6])
#第9⾏默认为表头,并更改为VI的名字。读取每个csv的最后⼀列
data1 = df[VI_name]# 把表格转换成数组的格式
data_list=list()#把数组转换成列表
dFrame[VI_name]=data_list #在字典中添⼊新的元素(每个表最后⼀列)
## print(data1)
## print(dFrame)
VIcol=pd.DataFrame(dFrame)
<_csv('**/output.csv')#输出表格路径。注意要先新建⼀个这样的.csv,并且不能和输⼊的csv表放在同⼀个⽂件夹下。
可能对你有⽤的链接
在写代码的过程中,我先了⼀个⼤致符合我需求的代码作为模板,试着⽤⾃⼰的⼀点点语法知识去理解它,然后把其中与⾃⼰要求不⼀致的代码进⾏模仿和修改。
下⾯是⼀些我在修改代码觉得对初学者很有⽤,相对系统的教程链接。
这个对于csv的读取可以说是⾮常详细了,帮了我⼤忙。
针对excel的,没试过,可以参考⼀下
写在最后的话
这个代码可能只是针对我特殊的需求写的,因此对输⼊表的格式和输出格式都是按照我的需求来的。但是部分代码可以供⼤家参考。
最后纪念⼀下,这是我第⼀次完整独⽴地⽤代码实现⾃⼰想要的功能,之前都是直接复制别⼈的代码,如果不能直接拿来⽤我就会很头疼,不想要努⼒去理解和修改了,觉得很复杂。对Python的学习,我还是计算机⼆级的⽔平,半年没看早语法就忘得⼀⼲⼆净。但我想,当初学不就是为了处理数据更快、更便捷吗?如果总是不想做出改变,安于旧⽅法和旧技能,就永远不会进步。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论