python - 如何将数据存储在 Json pandas 中
问题描述
我在excel表中存储了数据。现在我想以 json 格式存储数据。我使用不同的方法,df.to_json(orient=’records’) df.to_json(orient=’index’)
但我没有得到我想要的结果。下面是例子
name First_month_salary Second_month_salary third_month_salary fourth_month_salary
abc 15000 25000 14444 60000
fgh 15000 25000 14444 60000
xyz 15000 25000 14444 60000
我想要以下格式的输出:
abc : [{"value1" : "1500" , "value1.1" : "1500" ,"value1.2" : "1500" }, {"value2" : "25000" , "value2.1" : "25000" , "value2.2" : "25000" } , {"value3" : "14444" , "value3.1" : "14444" , "value3.2" : "14444"}, {"value4" : "60000" , "value4.1" : "60000" , "value4.2" : "60000"}]
fgh : [{"value1" : "1500" , "value1.1" : "1500" ,"value1.2" : "1500" }, {"value2" : "25000" , "value2.1" : "25000" , "value2.2" : "25000" } , {"value3" : "14444" , "value3.1" : "14444" , "value3.2" : "14444"}, {"value4" : "60000" , "value4.1" : "60000" , "value4.2" : "60000"}]
xyz : [{"value1" : "1500" , "value1.1" : "1500" ,"value1.2" : "1500" }, {"value2" : "25000" , "value2.1" : "25000" , "value2.2" : "25000" } , {"value3" : "14444" , "value3.1" : "14444" , "value3.2" : "14444"}, {"value4" : "60000" , "value4.1" : "60000" , "value4.2" : "60000"}]
当我转换它时。我得到这样的输出:
[{"name" : "abc" , {"First_month_salary" :"1500" ,"second_month_salary" : "25000", "third_month_salary" :"14444", "fourth_month_salary" : "60000"},
{"name" : "fgh" , {"First_month_salary" :"1500" ,"second_month_salary" : "25000", "third_month_salary" :"14444", "fourth_month_salary" : "60000"},
{"name" : "xyz" , {"First_month_salary" :"1500" ,"second_month_salary" : "25000", "third_month_salary" :"14444", "fourth_month_salary" : "60000"}]
我想要的只是我的输出中不需要列名
解决方案
您发布的不是有效的 JSON,您可以自己将其粘贴到在线解析器中进行确认。
如果我不得不猜测,看起来你想要一个字典,其中键是“名称”的值,值是工资列表。
{'abc': [1500 ,25000, 14444, 60000],
...
}
如果这是您正在寻找的,那么您可以执行以下操作:
import json
df = pd.DataFrame({'Name': ['abc', 'def', 'ghi'], 'sal1': [10, 20, 30], 'sal2': [100, 200, 300], 'sal3': [1000, 2000, 3000]})
d = {}
for idx, row in df.set_index('Name').iterrows():
d[idx] = row.values.tolist()
d 的输出将是
{'abc': [10, 100, 1000], 'def': [20, 200, 2000], 'ghi': [30, 300, 3000]}
json
然后,如果需要,您可以使用该模块将其写入文件。
推荐阅读
- c++ - 存储大量编译时间常数数据
- c# - 如何在我的 nuget 包中引用我的 nuget 包的消费者无法使用的其他 nuget 包?
- amazon-ec2 - AWS EC2 实例替换密钥对
- python - 如何计算列表中多项式的根?
- python - 图片的位置
- matlab - 尽可能高效地在单元阵列内平均超过 3 次暗淡
- javascript - 使用 observable 时角垫表不更新
- javascript - sudo apt install npm 它不起作用“以下软件包具有未满足的依赖项”
- oracle-apex - 是什么导致交互式网格的“移动”通知触发?
- string - 从字符串中获取属性