Ari*_*iel 1 python json pandas
我想将数据帧转换为json,这是我目前拥有的代码:
my_frame = pd.DataFrame(
{'Age':[30, 31],
'Eye':['blue', 'brown'],
'Gender': ['male', 'female']})
my_frame = my_frame.to_json(orient='records')
my_frame
Run Code Online (Sandbox Code Playgroud)
结果:
'[{"Age":30,"Eye":"blue","Gender":"male"},{"Age":31,"Eye":"brown","Gender":"female"}]'
Run Code Online (Sandbox Code Playgroud)
我想键添加到JSON对象,并添加关键信息在一个从数据框转换的整个数据.
add_keys = {'id': 101,
'loc': 'NY',
}
add_keys['info'] = my_frame
add_keys
Run Code Online (Sandbox Code Playgroud)
结果:
{'id': 101,
'info': '[{"Age":30,"Eye":"blue","Gender":"male"},
{"Age":31,"Eye":"brown","Gender":"female"}]',
'loc': 'NY'}
Run Code Online (Sandbox Code Playgroud)
我想在info中打印两个记录中的每一个,但是当我运行这个迭代代码时,它会输出字符串的每个字符而不是整个记录.我相信这可能是我如何添加密钥的问题.
for item in add_keys['info']:
print(item)
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢!
最好在这里使用pandas内置功能.所以,这就是你需要的:add_keys['info'] = my_frame.T.to_dict().values()
这是整个代码:
>>> my_frame = pd.DataFrame(
... {'Age':[30, 31],
... 'Eye':['blue', 'brown'],
... 'Gender': ['male', 'female']})
>>> my_frame
Age Eye Gender
0 30 blue male
1 31 brown female
>>> add_keys = {'id': 101,
... 'loc': 'NY',
... }
>>> add_keys
{'loc': 'NY', 'id': 101}
>>> add_keys['info'] = my_frame.T.to_dict().values()
>>> add_keys
{'info': [{'Gender': 'male', 'Age': 30L, 'Eye': 'blue'}, {'Gender': 'female', 'Age': 31L, 'Eye': 'brown'}], 'loc': 'NY', 'id': 101}
>>> for item in add_keys['info']:
... print(item)
...
{'Gender': 'male', 'Age': 30L, 'Eye': 'blue'}
{'Gender': 'female', 'Age': 31L, 'Eye': 'brown'}
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
529 次 |
| 最近记录: |