首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果先前字段为空,则使用以前的数据填充表中的下一个字段

如果先前字段为空,则使用以前的数据填充表中的下一个字段
EN

Stack Overflow用户
提问于 2015-10-30 06:07:40
回答 1查看 211关注 0票数 2

在我用QGIS 2.8开发的应用程序中,我有一个CSV与一系列点和线直接通信。然而,CSV有点问题。提供CSV数据的硬件每隔几行只提供位置数据。也就是说,有一个具有指定X和Y列的属性表,其字段仅在关键时间才被填充。其余的是其他仍然有用的数据,但位置只是间歇性地更新。

我有我的点特性的结构,所以只使用底部的(最近的)属性行来显示一个点。当然,我需要的位置数据,最底层的行,否则点消失。目前,我没有得到它,但偶尔。我的CSV ->点代码目前看起来如下(使用了pyshp库):

代码语言:javascript
运行
AI代码解释
复制
        cur_dir = os.path.dirname(os.path.realpath(__file__))

        file_location = os.path.join(cur_dir, "data", "mycsv.csv")
        out_file = os.path.join(cur_dir, "data", "mypoint.shp")
        idd, az, y, x = [], [], [], []

        with open(file_location, 'rb') as csvfile:
            r = list(csv.reader(csvfile, delimiter=','))
            reader = r[len(r) - 1:] #read only top row
            for i, row in reversed(list(enumerate(reader))): #reverse table
                idd.append(str(row[0]))
                az.append(float(row[2]))
                y.append(float(row[6]))
                x.append(float(row[7]))
                print "appended"


        w = shapefile.Writer(shapefile.POINT)
        w.field('ID', 'N')
        w.field('AZIMUTH', 'N', 12)
        w.field('Y', 'F', 10, 8)
        w.field('X', 'F', 10, 8)

        for j, k in enumerate(x): #write shapefile
            w.point(k, y[j])
            w.record(idd[j],az[j],y[j], k )
            print "recorded"

        w.save(out_file)

这里是CSV的一个片段。您将看到右边的切碎列:http://i.stack.imgur.com/ULZOS.png

首先,我尝试在多个枚举器下面的不同地方添加if x > 0:条件,以便在读取数据之前可能停止数字化,但每次都会给出错误min() arg is an empty sequence。我甚至不确定这是不是正确的开始,因为它可能只会使属性之间的顺序不一致。我真的需要某种“如果X或Y字段为null,使用以前字段的数据填充字段”脚本。

我使用Python2.7和PyQt4,用QGIS2.8API开发,运行在Ubuntu14.04上,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-30 09:01:15

您可以缓存X和Y数据点的最后有效值,我假设它们在row6和row7中

代码语言:javascript
运行
AI代码解释
复制
    with open(file_location, 'rb') as csvfile:
        r = list(csv.reader(csvfile, delimiter=','))
        reader = r[len(r) - 1:] #read only top row
        lastX = 0.
        lastY = 0.
        for i, row in reversed(list(enumerate(reader))): #reverse table
            idd.append(str(row[0]))
            az.append(float(row[2]))
            try:
                y.append(float(row[6]))
                lastY = float(row[6]))
            except (TypeError, ValueError) as e:
                if len(y) > 0:
                    y.append(lastY)

            try:
                x.append(float(row[7]))
                lastX = float(row[7]))
            except (TypeError, ValueError) as e:
                if len(x) > 0:
                    x.append(lastX)

            print "appended"

我假设缺失的CSV值是空字符串或空字符串。当转换为float()时,这两个值都会引发异常。如果值以0形式出现,那么请原始dev使值为空,因为0可能是一个真正的坐标,而不是缺少的坐标。

如果X和Y总是同时通过(如果有一个,则总是有另一个),那么您可以使用一个try/ all块来处理所有情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33437945

复制
相关文章
OpenCV-Python学习(8)—— OpenCV 颜色表操作
1. 知识点 学习查找表 cv.LUT()【look up table】; 颜色查找表; 函数 cv.applyColorMap() 的使用。 2. cv.LUT() 函数说明 2.1 函数使用 cv.LUT(src, lut, dst) 2.2 参数说明 参数 说明 src 表示原始图像。 lut 表示查找表的地址,对于多通道图像的查找,它可以有一个通道,也可以与原始图像有相同的通道。 dst 表示输出图像。 2.3 查找表的使用和优点 构建查找表; 查找表应用; 查找表优势,预计算,空间换时间,避
Rattenking
2022/10/24
2.2K0
OpenCV-Python学习(8)—— OpenCV 颜色表操作
CSS颜色操作案例Demo【彩色标记笔】
案例代码: Html代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Colored Markers</title> <link rel="stylesheet" href="styles.css"> </head> <body>
百思不得小赵
2023/01/13
3650
CSS颜色操作案例Demo【彩色标记笔】
如何在 Tableau 中对列进行高亮颜色操作?
在做数据分析时,如果数据量比较大,可以考虑使用颜色对重点关注的数据进行高亮操作,显眼的颜色可以帮助我们快速了解数据和发现问题。比如一个数据表可能会有十几到几十列之多,为了更好的看清某些重要的列,我们可以对表进行如下操作——
小马哥的牛棚
2020/08/20
5.9K0
Python操作excel:用xlwt设置excel单元格背景颜色,给字体加粗。【附】颜色表
xlwt.easyxf() 设置样式,pattern 指的就是背景,ice_blue 就是我设置的颜色。 font 就是设置字体,bold on 是加粗。 样式可以合一起,之间用分号;分开。
小蓝枣
2020/09/23
3.6K0
YIQ颜色空间_简述RGB颜色
1、彩色的三要素 亮度:即人眼对光的明亮程度的感受。 色调:人眼能看到的颜色种类,与光的波长有关 饱和度:颜色深浅程度。与各种颜色混入白光的比例有关。 以上 色调 + 饱和度 = 色度
全栈程序员站长
2022/11/17
2.7K0
YIQ颜色空间_简述RGB颜色
Python操作高版本Excel文件:颜色、边框、合并单元格
本文主要颜色Python扩展库openpyxl的一些基本用法,包括创建工作簿、选择活动工作表、写入单元格数据,设置单元格字体颜色、边框样式,合并单元格等等。 from random import randint, choice from openpyxl import Workbook from openpyxl.styles import Font, colors, Border, Side from openpyxl.drawing.image import Image #创建工作簿 wb = Work
Python小屋屋主
2018/04/16
4.3K0
Python操作高版本Excel文件:颜色、边框、合并单元格
04.HTML区块/布局/表单/框架/颜色/颜色名/颜色值
04.HTML区块/布局/表单/ 框架/颜色/颜色名/颜色值 HTML <div> 和<span> ---- HTML 可以通过 <div> 和 <span>将元素组合起来。 ---- HTML 区块元素 大多数 HTML 元素被定义为块级元素或内联元素。 块级元素在浏览器显示时,通常会以新行来开始(和结束)。 实例: <h1>, <p>, <ul>, <table> ---- HTML 内联元素 内联元素在显示时通常不会以新行开始。 实例: <b>, <td>, <a>, <img> ---- HTML
Java帮帮
2018/03/15
6.7K0
04.HTML区块/布局/表单/框架/颜色/颜色名/颜色值
颜色空间
算法:RGB颜色空间基于三维直角坐标系,而HSI颜色空间圆柱体的横截面称为色环,色环清晰地展示了色调H和饱和度S两个参数,亮度I是由颜色点到圆柱体底部的距离表示。
裴来凡
2022/05/28
1.1K0
颜色空间
颜色直方图
算法:颜色直方图是在许多图像检索系统中被广泛采用的颜色特征。它所描述的是不同色彩在整幅图像中所占的比例,而并不关心每种色彩所处的空间位置,即无法描述图像中的对象或物体。颜色直方图特别适于描述那些难以进行自动分割的图像。
裴来凡
2022/05/28
1.5K0
颜色直方图
颜色转换,利用HSV颜色空间检测
绘制出这些通道的灰度版本 以便观察各通道的强度,像素越亮 代表的红色、绿色或蓝色值就越高。我们可以看到 粉色气球的红色值很高 蓝色值也相对比较高,但值大小不一 特别是当气球位于阴影下的时候。
小飞侠xp
2018/08/28
1.3K0
颜色、网页颜色与网页安全色
我们所看到的屏幕上所有的颜色都是由红、绿、蓝这三种基色调混合而成的。(在印刷上,颜色是四种颜色合成的,这个是表示方式上的不同。)每一种颜色的饱和度和透明度都是可以变化的,用0~255的数值来表示。如纯红色表示为(255,0,0),十六进制表示为#FF0000。按这种表达方式,理论上我们可以得到256*256*256=16777216种颜色。
大江小浪
2018/07/25
3.6K0
颜色、网页颜色与网页安全色
颜色原理
色相是用来区别区别颜色的标志,是光由于波长、频率的不同而产生的性质。色相是在光谱上自然分割的结果。
hotarugali
2022/03/01
2.2K0
颜色原理
颜色空间
RGB 立方体(描述各个分量的变化导致的颜色变化趋势) YUV 平面(压缩数据) HSV 锥体(人体视觉,cv2::inrange函数颜色分割)
sofu456
2019/08/26
2K0
颜色空间
SAP abap ALV的列颜色、、行颜色、单元格颜色设置
matinal
2023/10/13
4730
颜色滤镜
我们手机上有很多照片处理软件,图片滤镜是里面不可或缺的一部分,我们可以先尝试一些很简单的滤镜的算法,管中窥豹地去认识一下色彩的处理
异名
2020/06/09
2.2K0
颜色传输
由于目前图像采用的颜色空间主要为 RGB 空间,但 RGB 颜色空间的各分量之间存在着相关性,这就意味着如果改变一个像素颜色外观的话,必须改变所有的颜色通道,这使得颜色更改过程变得极为复杂。而后 Ruderman 等人基于人类视觉对图像数据的感知研究,提出了lαβ 颜色空间,与 RGB 及其他颜色空间不同的是在 lαβ 颜色空间中通道间数据的相关性最小,从而可在不同的通道独立地进行统计信息的传递。
客怎眠qvq
2022/11/01
8610
颜色传输
点击加载更多

相似问题

Eclipse Juno中的Android SDK Content Loader错误

21

Eclipse挂在Android SDK内容加载器上

17171

Android SDK Content Loader因NullPointerException而失败

223

Eclipse : Android SDK

11

android eclipse sdk位置

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文