我的json结构如下:
{
"data": {
"item1": {
"field1": "foo",
"field2": "bar",
"field3": "baz"
},
"item2": {
"field1": "foo1",
"field2": "bar1",
"field3": "baz1"
},
}
}
当我使用pd.io.json.json\u normalize
规范化这个数据结构时,我得到了一个数据帧,每个数据项都有1行和重复的列标题。如何使重复的列显示为行而不是列?
我现在得到这个
field1 | field2 | field3 | field1 |field2 | field3
foo | bar | baz | foo1 | bar1 | baz1
我想要的是:
field1 | field2 | field3 |
foo | bar | baz
foo1 | bar1 | baz1
您可以尝试将data
转换为list,然后使用json_normalize
将数据规范化:
from pandas.io.json import json_normalize
content={"data": {"item1": {"field1": "foo","field2": "bar","field3": "baz"},"item2": {"field1": "foo1","field2": "bar1","field3": "baz1"},}}
content["data"]=content["data"].values()
result = json_normalize(content,"data")
print(result)
输出:
field1 field2 field3
0 foo1 bar1 baz1
1 foo bar baz
这就是你想要的吗?
In [31]: d
Out[31]:
{'data': {'item1': {'field1': 'foo', 'field2': 'bar', 'field3': 'baz'},
'item2': {'field1': 'foo1', 'field2': 'bar1', 'field3': 'baz1'}}}
In [32]: pd.DataFrame(d['data']).T
Out[32]:
field1 field2 field3
item1 foo bar baz
item2 foo1 bar1 baz1
问题内容: 我刚刚发现了json_normalize函数,该函数在获取JSON对象并给我一个熊猫Dataframe时效果很好。现在,我想要反向操作,该操作采用相同的Dataframe并给我一个与原始json具有相同结构的json(或类似json的字典,我可以轻松地将其转换为json)。 这是一个示例:https : //hackersandslackers.com/json-into-pandas
问题内容: 我读的使用。我想保留第一行作为数据,但是它一直在转换为列名。 我试过了,但这只是完全删除了它。 (请注意输入数据:我有一个字符串(),我将其转换为类似文件的对象(),然后从该文件对象进行构建。) 问题答案: 您希望将gets类型提升为查看文档重点类别: header:int或int列表,默认“ infer”行号(用作列名)以及数据的开头。如果未传递任何名称,则默认行为就像设置为0,否则
问题内容: 我正在尝试在两个数据帧之间合并。每个数据帧都有两个索引级别(日期,客户)。在列中,例如,某些列在两者之间匹配(货币,日期)。 按索引合并这些内容的最佳方法是什么,但不要采用两个副本的货币和日期。 每个数据框都是90列,所以我试图避免用手将所有内容写出来。 如果我做: 我懂了 谢谢!… 问题答案: 您可以算出仅在一个DataFrame中的列,并使用它来选择合并中列的子集。 然后执行合并(
我已经看到了将一个列/系列分解成熊猫数据框架的多个列这一主题的一些变体,但是我一直在尝试做一些事情,但是现有的方法并没有真正成功。 给定如下数据帧: 我想将系列中的项目转换为列,以 值作为值,如下所示: 我觉得这应该是一个相对简单的问题,但我已经为此努力了几个小时,不断增加的复杂程度,但没有成功。
我试图将CSV字符串导出到D3 Web应用程序,但是命令坚持向数据添加尾随0,这阻止了D3的正确使用。 这里有一个简单的例子来说明这个问题。 我的(简化)数据帧是: 包含一个,如下所示: 然后根据这个答案,我运行要获取我想要的格式,请执行以下操作: 现在,包含一个
我有4个值数据作为函数的输出。这是我的数据 这是我想要的