Python-Json到数据帧
我有一个复杂的Json文件,如下所示:Python-Json到数据帧,python,json,pandas,dataframe,Python,Json,Pandas,Dataframe,我有一个复杂的Json文件,如下所示: { "User A" : { "Obj1" : { "key1": "val1", "key2": "val2", "key3": "val3", } "Obj2" : { "key1": "val1", "key2": "val2", "key3": "val3" } } "User B" : {
{
"User A" : {
"Obj1" : {
"key1": "val1",
"key2": "val2",
"key3": "val3",
}
"Obj2" : {
"key1": "val1",
"key2": "val2",
"key3": "val3"
}
}
"User B" : {
"Obj1" : {
"key1": "val1",
"key2": "val2",
"key3": "val3",
"key4": "val4"
}
}
}
key1 key2 key3 key4
User A Obj1 val1 val2 val3 NaN
Obj2 val1 val2 val3 NaN
User B Obj1 val1 val2 val3 val4
我想把它变成一个数据帧,看起来像这样:
{
"User A" : {
"Obj1" : {
"key1": "val1",
"key2": "val2",
"key3": "val3",
}
"Obj2" : {
"key1": "val1",
"key2": "val2",
"key3": "val3"
}
}
"User B" : {
"Obj1" : {
"key1": "val1",
"key2": "val2",
"key3": "val3",
"key4": "val4"
}
}
}
key1 key2 key3 key4
User A Obj1 val1 val2 val3 NaN
Obj2 val1 val2 val3 NaN
User B Obj1 val1 val2 val3 val4
这对熊猫有可能吗?如果是的话,我如何才能做到这一点
- 如果更简单,我不介意删除User和Obj的前两列,只保留键的列
with open('file.json') as data_file:
dd = json.load(data_file)
print(dd)
{'User B': {'Obj1': {'key2': 'val2', 'key4': 'val4', 'key1': 'val1', 'key3': 'val3'}},
'User A': {'Obj1': {'key2': 'val2', 'key1': 'val1', 'key3': 'val3'},
'Obj2': {'key2': 'val2', 'key1': 'val1', 'key3': 'val3'}}}
然后使用听写理解
:
另一个解决方案是,但首先需要通过重塑和删除NaN
行。最后需要:
你真是帮了大忙,谢谢!无法想象我工作了一个小时,只需要两行代码就可以完成,如此优雅。。。是否有一种简单的方法将此df保存为excel文件?感谢您的接受!当然,如果需要删除索引,请使用-
df1.to_excel('file.xlsx')
或df1.to_excel('file.xlsx',index=False)
。
df1 = pd.DataFrame.from_records(df.values.tolist(), index = df.index)
print (df1)
key1 key2 key3 key4
User A Obj1 val1 val2 val3 NaN
Obj2 val1 val2 val3 NaN
User B Obj1 val1 val2 val3 val4