繁体   English   中英

需要帮助从 json 文件格式化 pandas 数据帧

[英]Need help formatting pandas data frame from json file

嗨,我需要帮助格式化 json 文件,我将其转换为 pandas dataframe。

Json 看起来像

{
  "test":
    { 
       "1":["test1_a", "test1_b", "test1_c"]
       "2":["test2_a", "test2_b", "test2_c"]
       "3":["test3_a", "test3_b", "test3_c"]
     }
}

我需要将此 json 转换为 pandas dataframe 并像这样打印:

col1     col2     col3
test1_a  test1_b  test1_c
test2_a  test2_b  test2_c
test3_a  test3_b  test3_c

我该怎么做? 我需要它是 pandas dataframe 并且需要定义列行。

到目前为止,我已经尝试过:

json_file = open(json_file_path, 'r') 
data = json.load(json_file)
pandasDataframe = pd.Dataframe.from_dict(data)
print(pandasDataframe)

它打印了这个,我不想要:(

1 ["test1_a", "test1_b", "test1_c"]
2 ["test2_a", "test2_b", "test2_c"]
3 ["test3_a", "test3_b", "test3_c"]

更新:当我这样做的时候

pd.DataFrame(data['test'])

它看起来像 [不是我想要的,但它正在到达那里]

     1        2        3
0 test1_a   test2_a  test3_a
1 test1_b   test2_b  test3_b
2 test1_c   test2_c  test3_c

更新#2:当我转置时,它看起来像这样:

        0               2
1 test1_a test1_b test1_c
2 test2_a test2_b test2_c
3 test3_a test3_b test3_c

我将如何摆脱顶部的 0 和 2 ? 这是什么意思? 另外我如何摆脱 1,2,3 (又名第一列)

所需的 output:需要添加列名称(col1、col2、col3),但不知道如何添加)

col1     col2     col3
test1_a  test1_b  test1_c
test2_a  test2_b  test2_c
test3_a  test3_b  test3_c

IIUC,你需要add_prefix

import pandas as pd

pd.DataFrame(data['test']).add_prefix('col')

      col1     col2     col3
0  test1_a  test2_a  test3_a
1  test1_b  test2_b  test3_b
2  test1_c  test2_c  test3_c

您可以尝试:

pd.DataFrame(data['test']).T.rename(columns={0:'col1',1:'col2',2:'col3'})

Output:

      col1     col2     col3
1  test1_a  test1_b  test1_c
2  test2_a  test2_b  test2_c
3  test3_a  test3_b  test3_c

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM