最近,需要根据ENVI中ROI导出的csv表格,计算植被指数的相关性,共上百个表,需要把每个表的固定列数据整合到一个表上计算相关性。手动操作真的太累了,于是就想试试Python代码。
可以看到,代码将四个表中前面的元数据和表头都忽略,只提取了最后一列的数据,并根据用表格名称中的VI(植被指数)来作为表头,防止分不清每一列数字所代表的含义。
import pandas as pd
import numpy as np
import os
def get_file(path):
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]
tr = '/'
filename = path + tr + f_name
list1.append(filename)
listVI.append(VI_name)
return (list1,listVI)
File=get_file('**/python_try')[0]
VI=get_file('**/python_try')[1]
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])
data1 = df[VI_name]
data_list=data1.values.tolist()
dFrame[VI_name]=data_list
VIcol=pd.DataFrame(dFrame)
VIcol.to_csv('**/output.csv')
可能对你有用的链接
在写代码的过程中,我先找了一个大致符合我需求的代码作为模板如何用PYTHON批量提取各个.CSV文件中某范围的数值并进行合并,试着用自己的一点点语法知识去理解它,然后把其中与自己要求不一致的代码进行模仿和修改。
下面是一些我在修改代码觉得对初学者很有用,相对系统的教程链接。
Pandas CSV 文件
详解pandas的read_csv方法 这个对于csv的读取可以说是非常详细了,帮了我大忙。
python 如何提取多个excel表中的某行/列数据做合并 针对excel的,没试过,可以参考一下
写在最后的话
这个代码可能只是针对我特殊的需求写的,因此对输入表的格式和输出格式都是按照我的需求来的。但是部分代码可以供大家参考。
最后纪念一下,这是我第一次完整独立地用代码实现自己想要的功能,之前都是直接复制别人的代码,如果不能直接拿来用我就会很头疼,不想要努力去理解和修改了,觉得很复杂。对Python的学习,我还是计算机二级的水平,半年没看早语法就忘得一干二净。但我想,当初学不就是为了处理数据更快、更便捷吗?如果总是不想做出改变,安于旧方法和旧技能,就永远不会进步。
Python提取多个CSV表的指定列合成一个多列CSV表新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入最近,需要根据ENVI中ROI导出的csv表格,计算植被指数的相关性,共上百个表,需要把每个表的固定列数据整合到一个
提取多份csv文件特定的列整合到新的csv工作表中
在科研生活中,我们可能在数据测试中得到很多份csv数据,这些数据只有两列,我们在后续数据处理中可能想把这些数据放在origin中绘图,其中所有数据的x轴(即第一列数据)都相同,我们想将y轴都整合在新的文件里,保存一列x轴数据,这样方便origin作图。因此,这里记录如何通过python代码快速实现整合。
该问题用代码进行处理的思路是这样:
首先需要知道这些文件所处的路径位置
接着逐次读取每份文件,并提取某列数据
建立空列表,将提取出来的数据写入新的工作
需求:将多个csv文件读取出来,将数据合并到一个csv文件,
1、遍历文件夹,将scv文件存入到列表list1
2、遍历列表list1读取csv文件,将读到的数据存入到二维列表list2
3、开始处理二维列表:
3.1、因为二维列表里的各个列表长度不一致,首先通过插入空值的方法处理成长度一致的列表
3.2、将列表list2转秩,如果不转秩,将会出现行列交换的现象
3.3、写入到新的csv文件
# coding=utf-8
import pandas as pd
import MySQLdb
impor
在线CSV转多行数据工具
CSV 到多行数据转换器将 csv 数据转换为多行数据。CSV 到多行数据转换器将 csv 数据转换为多行数据。CSV 到多行数据转换器将 csv 数据转换为多行数据。
https://toolgg.com/csv-to-multi-line-data.html
很多时候,数据的来源都是多个Excel或者csv文件。我们在做数据处理的时候,为了避免利用Excel手动合并数据,常常借助于python进行处理。
例如,1.xls里面有3个列,2.xls里面有2个列,3.xls里面有3个列,4.xls里面有3个列,4.xls里面有2个列。我们想把每个文件中的列数据单独提出来,整合成一个新的列。
那我们就这么做:
import pandas as pd
data1= pd.read_excel('E:\1.xls') # 读取文件
data2=pd.read_e
今天想把
一个300MB的.so
文件上传到github,但是它居然直接拒绝了。搜索之后发现了git默认上传
文件大小有限制。这时候可以使用 git-lfs解决这个问题。
Git LFS 是 Github 开发的
一个 Git 的扩展,用于实现 Git 对大
文件的支持。下面就是安装和使用的方式
1.安装方式
您可以使用Python的pandas库来提取多个csv文件的固定列,并将它们合并到一个Excel文件的不同列中。以下是一个示例代码:
```python
import pandas as pd
# 读取csv文件
df1 = pd.read_csv('file1.csv', usecols=['Column1'])
df2 = pd.read_csv('file2.csv', usecols=['Column1'])
df3 = pd.read_csv('file3.csv', usecols=['Column1'])
# 合并数据到Excel文件
with pd.ExcelWriter('output.xlsx') as writer:
df1.to_excel(writer, sheet_name='Sheet1', startcol=0, index=False)
df2.to_excel(writer, sheet_name='Sheet1', startcol=1, index=False)
df3.to_excel(writer, sheet_name='Sheet1', startcol=2, index=False)
在此示例中,我们首先使用pandas的read_csv函数来读取每个csv文件并仅选择我们感兴趣的列。然后,我们使用pandas的ExcelWriter函数将每个DataFrame写入Excel文件的不同列中。`startcol`参数指定要将数据写入的Excel列。在此示例中,我们将第一个DataFrame写入Excel的第一列,第二个DataFrame写入Excel的第二列,以此类推。
注意,此示例假定列名在每个csv文件中都相同,并且您只对“Column1”列感兴趣。如果您需要提取不同的列或处理不同的列名,请相应地更改代码。