简体   繁体   中英

Convert json String in Panda dataframe

I have a Json string I've got from an API, that I want to convert into a nice table. It looks like this:

 {'Content': 'GENESIS-Tabelle: Temporär\nVj. Index der Tarifverdienste und Arbeitszeiten;;;;;;;;;;;;;;;;;;\nZeitreihe aus 62221BV002;;;;;;;;;;;;;;;;;;\nVj. Index der Tarifverdienste und Arbeitszeiten;;;;;;;;;;;;;;;;;;\n;;;;Jahr;Jahr;Jahr;Jahr;Jahr;Jahr;Jahr;Jahr;Jahr;Jahr;Jahr;Jahr;Jahr;Jahr;Jahr\n;;;;2018;2018;2018;2018;2019;2019;2019;2019;2020;2020;2020;2020;2021;2021;2021\n;;;;Quartale;Quartale;Quartale;Quartale;Quartale;Quartale;Quartale;Quartale;Quartale;Quartale;Quartale;Quartale;Quartale;Quartale;Quartale\n;;;;1. Quartal;2. Quartal;3. Quartal;4. Quartal;1. Quartal;2. Quartal;3. Quartal;4. Quartal;1. Quartal;2. Quartal;3. Quartal;4. Quartal;1. Quartal;2. Quartal;3. Quartal\nFrüheres Bundesgebiet;Energie- und Wasserversorgung;Index d.tarifl. Monatsverdienste ohne Sonderzahl.;2020=100;93,5;93,9;95,3;96,0;96,3;98,5;98,7;99,0;99,3;100,1;100,3;100,3;100,6;102,0;102,1\nNeue Länder;Energie- und Wasserversorgung;Index d.tarifl. Monatsverdienste ohne Sonderzahl.;2020=100;94,9;94,9;95,5;96,1;96,4;98,8;98,9;98,9;99,1;99,5;100,5;100,9;101,0;101,8;102,6\n__________\n© Statistisches Bundesamt (Destatis), 2021\nStand: 19.12.2021 / 18:05:39\n'}

I would usually convert it into a dataframe (normalize it) to make it look like this: 在此处输入图像描述

But this one seems a bit out of form and I dont know where to start...

Any help is much appreciated

The best I can do with your sample:

import pandas as pd
import io

data = {'Content': 'GENESIS...\n'}
df = pd.read_csv(io.StringIO(d['Content']), skiprows=1, skipfooter=4,
                 header=None, sep=';', engine='python').T
df = df.ffill().loc[lambda x: x[4].notna()]

Output:

>>> df
                                                  0                         1                                                2     3     4         5           6      7
4   Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2018  Quartale  1. Quartal   93,5
5   Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2018  Quartale  2. Quartal   93,9
6   Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2018  Quartale  3. Quartal   95,3
7   Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2018  Quartale  4. Quartal   96,0
8   Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2019  Quartale  1. Quartal   96,3
9   Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2019  Quartale  2. Quartal   98,5
10  Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2019  Quartale  3. Quartal   98,7
11  Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2019  Quartale  4. Quartal   99,0
12  Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2020  Quartale  1. Quartal   99,3
13  Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2020  Quartale  2. Quartal  100,1
14  Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2020  Quartale  3. Quartal  100,3
15  Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2020  Quartale  4. Quartal  100,3
16  Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2021  Quartale  1. Quartal  100,6
17  Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2021  Quartale  2. Quartal  102,0
18  Vj. Index der Tarifverdienste und Arbeitszeiten  Zeitreihe aus 62221BV002  Vj. Index der Tarifverdienste und Arbeitszeiten  Jahr  2021  Quartale  3. Quartal  102,1

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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