【问题标题】:Convert json list to data frame将json列表转换为数据框
【发布时间】:2019-02-08 16:33:31
【问题描述】:

我在将 json 文件转换为数据框时遇到问题。 我使用 jsonlite 和 fromJSON() 函数以及 unlist() 函数,但我无法设法在我想要的数据模型中获取数据。

Json 文件的结构是这样的:

{"JOHN":["AZ","YZ","ZE","ZR","FZ"],"MARK":["FZ","JF","FS"],"LINDA":["FZ","RZ","QF"]}

我想要一个类似这样的数据框:

NAME GROUP
JOHN  AZ
JOHN  YZ
JOHN  ZE
JOHN  ZR
JOHN  FZ
MARK  FZ
MARK  JF
MARK  FS
...

谢谢!

【问题讨论】:

    标签: r json list dataframe


    【解决方案1】:

    我们可以使用来自jsonlitefromJSON 来获得listkey/value 向量,将其转换为带有stack 的两列data.frame,重新排列列并更改列名(如果需要)。

    library(jsonlite)
    setNames(stack(fromJSON(str1))[2:1], c("NAME", "GROUP"))
    #    NAME GROUP
    #1   JOHN    AZ
    #2   JOHN    YZ
    #3   JOHN    ZE
    #4   JOHN    ZR
    #5   JOHN    FZ
    #6   MARK    FZ
    #7   MARK    JF
    #8   MARK    FS
    #9  LINDA    FZ
    #10 LINDA    RZ
    #11 LINDA    QF
    

    数据

    str1 <- '{"JOHN":["AZ","YZ","ZE","ZR","FZ"],"MARK":["FZ","JF","FS"],"LINDA":["FZ","RZ","QF"]}'
    

    【讨论】:

    • 哇...就像一个魅力!你能解释一下括号 [2:1] 吗?
    • @ML_Enthousiast 只是重新排列列。默认情况下,stack 返回第二个键列,我更改了列顺序,使第一列是第二个,第二个在前
    猜你喜欢
    • 2020-05-15
    • 2023-02-23
    • 2020-09-02
    • 2021-02-09
    • 2018-08-25
    • 2021-09-27
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    相关资源
    最近更新 更多