将带有整数键的嵌套 json 转换为 pandas 数据框
convert nested json with integers keys to pandas dataframe
我大家。我正在尝试将嵌套的 Json 转换为 pandas 数据框。这是 JSON 的样子:
{0: {'Geographical information': 'Sweden',
'Geography': 'mentioned',
'Time': 'not_relevant',
'annotation': 'quantitative_precise',
'claim': ' “"',
'label': 'Mostly true',
'text': 'Swedish.'},
1: {'Geographical information': 'Italy',
'Geography': 'mentioned',
'Time': 'unclear',
'annotation': 'quantitative_precise',
'claim': '',
'label': 'Mostly false',
'text': "."},
2: {'Geography': 'not_relevant',
'Time': 'unclear',
'annotation': 'quantitative_vague',
'claim': ' "”',
'label': 'False',
'text': '.'},
3: {'Geographical information': 'France',
'Geography': 'mentioned',
'Time': 'not_relevant',
'annotation': 'qualitative',
'claim': ' ',
'label': 'Mostly false',
'text': '.'},
理想情况下,生成的 df 应将内部字典键(例如“地理信息”)作为列,将外部键(0、1、2 等)作为行。我正在使用 pd.json_normalize()
函数。但是,后者将外键(因为我认为它们都是不同的整数)误解为列而不是行。
尝试:
data = {0: {'Geographical information': 'Sweden',
'Geography': 'mentioned',
'Time': 'not_relevant',
'annotation': 'quantitative_precise',
'claim': ' “"',
'label': 'Mostly true',
'text': 'Swedish.'},
1: {'Geographical information': 'Italy',
'Geography': 'mentioned',
'Time': 'unclear',
'annotation': 'quantitative_precise',
'claim': '',
'label': 'Mostly false',
'text': "."},
2: {'Geography': 'not_relevant',
'Time': 'unclear',
'annotation': 'quantitative_vague',
'claim': ' "”',
'label': 'False',
'text': '.'},
3: {'Geographical information': 'France',
'Geography': 'mentioned',
'Time': 'not_relevant',
'annotation': 'qualitative',
'claim': ' ',
'label': 'Mostly false',
'text': '.'}}
pd.DataFrame.from_dict(data, orient='index')
根据pandas官方文档https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.from_dict.html
我大家。我正在尝试将嵌套的 Json 转换为 pandas 数据框。这是 JSON 的样子:
{0: {'Geographical information': 'Sweden',
'Geography': 'mentioned',
'Time': 'not_relevant',
'annotation': 'quantitative_precise',
'claim': ' “"',
'label': 'Mostly true',
'text': 'Swedish.'},
1: {'Geographical information': 'Italy',
'Geography': 'mentioned',
'Time': 'unclear',
'annotation': 'quantitative_precise',
'claim': '',
'label': 'Mostly false',
'text': "."},
2: {'Geography': 'not_relevant',
'Time': 'unclear',
'annotation': 'quantitative_vague',
'claim': ' "”',
'label': 'False',
'text': '.'},
3: {'Geographical information': 'France',
'Geography': 'mentioned',
'Time': 'not_relevant',
'annotation': 'qualitative',
'claim': ' ',
'label': 'Mostly false',
'text': '.'},
理想情况下,生成的 df 应将内部字典键(例如“地理信息”)作为列,将外部键(0、1、2 等)作为行。我正在使用 pd.json_normalize()
函数。但是,后者将外键(因为我认为它们都是不同的整数)误解为列而不是行。
尝试:
data = {0: {'Geographical information': 'Sweden',
'Geography': 'mentioned',
'Time': 'not_relevant',
'annotation': 'quantitative_precise',
'claim': ' “"',
'label': 'Mostly true',
'text': 'Swedish.'},
1: {'Geographical information': 'Italy',
'Geography': 'mentioned',
'Time': 'unclear',
'annotation': 'quantitative_precise',
'claim': '',
'label': 'Mostly false',
'text': "."},
2: {'Geography': 'not_relevant',
'Time': 'unclear',
'annotation': 'quantitative_vague',
'claim': ' "”',
'label': 'False',
'text': '.'},
3: {'Geographical information': 'France',
'Geography': 'mentioned',
'Time': 'not_relevant',
'annotation': 'qualitative',
'claim': ' ',
'label': 'Mostly false',
'text': '.'}}
pd.DataFrame.from_dict(data, orient='index')
根据pandas官方文档https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.from_dict.html