如何将自定义list列表转换为符合要求的DataFrame数据框
命名列表/字典转单行DataFrame操作方法
首先区分你使用的编程环境,对应操作如下:
R 环境(你给出的列表写法符合R语法规范)
你当前的一维命名列表直接转数据框会默认将每个元素作为单独行处理,调整方法如下:
- 首先修正列表定义里的转义字符,得到正确的列表对象:
my_list <- list( personaId = 0, pacienteId = 1408849, sexoId = 0, departamentoResidencia = "CUNDINAMARCA", municipioResidencia = "ANAPOIMA", tipoIdentificacion = "Cédula de ciudadanía", numeroIdentificacion = "12345", primerNombre = "ivone", segundoNombre = "", primerApellido = "moya", segundoApellido = NULL, fechaNacimiento = "1924-11-17T00:00:00" )
- 转单行数据框
基础R方案
# 先打平列表转置后再转数据框 df <- as.data.frame(t(unlist(my_list)), stringsAsFactors = FALSE) # 按需还原数值列类型 df$personaId <- as.integer(df$personaId) df$pacienteId <- as.integer(df$pacienteId) df$sexoId <- as.integer(df$sexoId)
tidyverse 简化方案
library(tibble) # 直接生成符合要求的单行tibble(可直接当data.frame使用) df <- as_tibble_row(my_list)
Python 环境
Python原生list不支持键值对结构,你给出的写法实际对应字典对象,转换时只需给字典套一层外层列表即可:
import pandas as pd my_dict = { "personaId": 0, "pacienteId": 1408849, "sexoId": 0, "departamentoResidencia": "CUNDINAMARCA", "municipioResidencia": "ANAPOIMA", "tipoIdentificacion": "Cédula de ciudadanía", "numeroIdentificacion": "12345", "primerNombre": "ivone", "segundoNombre": "", "primerApellido": "moya", "segundoApellido": None, "fechaNacimiento": "1924-11-17T00:00:00" } # 外层加[]将字典识别为单行数据 df = pd.DataFrame([my_dict])
内容的提问来源于stack exchange,提问作者Andres Mora
相关产品推荐
相关产品推荐

