在 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字符串列表?

如何删除单引号,并在转换为to_json后将括号添加到pandas数据框中?

在多索引 Python Panda 数据框中过滤多个项目

在转换为具有拆分方向的 json 之前从数据框中删除索引

python Panda浮点数在转换为字符串时被四舍五入