gpt4 book ai didi

json - 提取、格式化和单独存储在数据框列中的 JSON

转载 作者:行者123 更新时间:2023-12-04 01:42:36 28 4
gpt4 key购买 nike

我如何解析和处理已经存在于数据框中的 JSON?

样本数据:

df <- data.frame(
id = c("x1", "x2"),
y = c('[{"Property":"94","Value":"Error"},{"Property":"C1","Value":"Found Match"},{"Property":"C2","Value":"Address Mismatch"}]', '[{"Property":"81","Value":"XYZ"},{"Property":"D1","Value":"Blah Blah"},{"Property":"Z2","Value":"Email Mismatch"}]')
)

我想提取、格式化和分隔列 y 中的原始 JSON成有序的列,最好是 library(jsonlite) .

提前致谢!

最佳答案

使用 jsonlite和 tidyverse:

library(tidyverse)
library(jsonlite)

df %>% mutate(y = map(y, ~fromJSON(as.character(.x)))) %>% unnest()

# Source: local data frame [6 x 3]
#
# id Property Value
# <fctr> <chr> <chr>
# 1 x1 94 Error
# 2 x1 C1 Found Match
# 3 x1 C2 Address Mismatch
# 4 x2 81 XYZ
# 5 x2 D1 Blah Blah
# 6 x2 Z2 Email Mismatch

或没有 purrr ,
df %>% rowwise() %>% mutate(y = list(fromJSON(as.character(y)))) %>% unnest()

或仅使用 dplyrjsonlite ,
df %>% rowwise() %>% do(data.frame(id = .$id, fromJSON(as.character(.$y))))

或仅使用基数 R 和 jsonlite ,
do.call(rbind, 
Map(function(id, y){data.frame(id, fromJSON(as.character(y)))},
df$id, df$y))

所有返回相同的东西,所以选择对你最有意义的。

关于json - 提取、格式化和单独存储在数据框列中的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37997283/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com