在 Panda 数据框中转换 json 字符串 [关闭]
Posted
技术标签:
【中文标题】在 Panda 数据框中转换 json 字符串 [关闭]【英文标题】:Convert json String in Panda dataframe [closed] 【发布时间】:2022-01-21 14:05:46 【问题描述】:我有一个 Json 字符串,其中包含一个具有很长值的 key: value
对。
它看起来像这样:
'Content': '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'
我通常会将 long Value 的内容转换为数据框(对其进行规范化),使其看起来像这样:
但我不知道如何将这个长字符串转换为表格 - 形状。
非常感谢任何帮助
【问题讨论】:
您需要提供一个示例输出数据框,以及它的外观规则等。 【参考方案1】:我能用你的样品做的最好的:
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()]
输出:
>>> 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
【讨论】:
以上是关于在 Panda 数据框中转换 json 字符串 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
将 JSON 时间戳字符串转换为 pandas 数据框中的 python 日期
通过使用pyspark将列转换为行来解析数据框中的Json字符串列表?