You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中将QgsVectorLayer对象转换为pandas dataframe

将QgsVectorLayer转换为Pandas DataFrame的方法

基础转换步骤

基于你通过分区统计得到的QgsVectorLayer对象(即result['OUTPUT']),可以按以下步骤完成转换:

  1. 导入依赖库
    确保已安装并导入pandas:

    import pandas as pd
    
  2. 提取图层与字段信息
    获取目标图层对象及所有字段名称:

    # 提取QgsVectorLayer对象
    layer = result['OUTPUT']
    # 生成字段名列表
    field_names = [field.name() for field in layer.fields()]
    
  3. 收集要素属性数据
    遍历图层所有要素,提取每个要素的属性值:

    data = []
    for feature in layer.getFeatures():
        # 获取当前要素的全部属性值
        attrs = feature.attributes()
        data.append(attrs)
    
  4. 转换为DataFrame
    将收集到的属性数据转为Pandas DataFrame:

    df = pd.DataFrame(data, columns=field_names)
    

简化写法

用列表推导式简化数据收集步骤,让代码更紧凑:

import pandas as pd

layer = result['OUTPUT']
field_names = [f.name() for f in layer.fields()]
df = pd.DataFrame([f.attributes() for f in layer.getFeatures()], columns=field_names)

扩展:包含几何信息(可选)

如果需要将要素的几何数据也存入DataFrame,可以将几何对象转为WKT格式字符串:

data = []
for feature in layer.getFeatures():
    attrs = feature.attributes()
    # 添加几何的WKT格式字符串
    attrs.append(feature.geometry().asWkt())
    data.append(attrs)
# 字段名列表新增几何字段
field_names.append('geometry')
df = pd.DataFrame(data, columns=field_names)

内容的提问来源于stack exchange,提问作者CoolMathematician

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 06:22:41