创建一个来自 pandas 的唯一的 JSON 对象。

huangapple go评论103阅读模式
英文:

Creating a unique json object from pandas

问题

我想创建一个JSON对象来表示这个数据框,如下所示:

  1. {
  2. "median_home_value": [
  3. {"year": 2010, "value": 11973, "type": "analyzed"},
  4. {"year": 2011, "value": 12500, "type": "analyzed"},
  5. {"year": 2012, "value": 13325, "type": "analyzed"},
  6. {"year": 2013, "value": 14204, "type": "analyzed"},
  7. {"year": 2014, "value": 14815, "type": "analyzed"},
  8. {"year": 2015, "value": 15393, "type": "analyzed"},
  9. {"year": 2016, "value": 15901, "type": "analyzed"},
  10. {"year": 2017, "value": 16680, "type": "analyzed"},
  11. {"year": 2018, "value": 17497, "type": "analyzed"},
  12. {"year": 2019, "value": 18249, "type": "analyzed"},
  13. {"year": 2020, "value": 19381, "type": "analyzed"},
  14. {"year": 2021, "value": 20292, "type": "analyzed"},
  15. {"year": 2027, "value": 20718.132, "type": "predicted"},
  16. {"year": 2024, "value": 21225.432, "type": "predicted"},
  17. {"year": 2026, "value": 21103.68, "type": "predicted"},
  18. {"year": 2025, "value": 20779.008, "type": "predicted"},
  19. {"year": 2023, "value": 20941.344, "type": "predicted"}
  20. ]
  21. }

您可以尝试以下代码来实现这个JSON对象的创建:

  1. import pandas as pd
  2. import json
  3. # 创建一个新的DataFrame,包含所需的列
  4. new_df = test_df[['Year', 'Median_Home_Value', 'type']].rename(columns={'Year': 'year', 'Median_Home_Value': 'value', 'type': 'type'})
  5. # 转换DataFrame为JSON对象
  6. json_data = new_df.to_json(orient='records')
  7. # 创建最终的JSON对象
  8. result = {
  9. "median_home_value": json.loads(json_data)
  10. }
  11. # 将result对象转换为JSON字符串
  12. result_json = json.dumps(result, indent=4)
  13. print(result_json)

这段代码将创建一个与您所期望的JSON对象结构相匹配的JSON字符串。

英文:

I have this dataframe

  1. Year type Median_Home_Value
  2. 786252 2010 analyzed 11973.000
  3. 786253 2011 analyzed 12500.000
  4. 786254 2012 analyzed 13325.000
  5. 786255 2013 analyzed 14204.000
  6. 786256 2014 analyzed 14815.000
  7. 786257 2015 analyzed 15393.000
  8. 786258 2016 analyzed 15901.000
  9. 786259 2017 analyzed 16680.000
  10. 786260 2018 analyzed 17497.000
  11. 786261 2019 analyzed 18249.000
  12. 786262 2020 analyzed 19381.000
  13. 786263 2021 analyzed 20292.000
  14. 899389 2027 predicted 20718.132
  15. 899390 2024 predicted 21225.432
  16. 899397 2026 predicted 21103.680
  17. 899415 2025 predicted 20779.008
  18. 899481 2023 predicted 20941.344

I want to create a json object to represent this dataframe to be like this

  1. {
  2. median_home_value: [{year: 2010, value: 11973, type: analyzed}, {year: 2011, value: 12500, type: analyzed}, ....]
  3. }

I tried to do something like this

  1. d = {}
  2. d['Median_Home_Value] = test_df[['Year', 'Median_Home_Value', 'type']].to_json()

but it does not give me the expected result, any suggestions are appreciated.

答案1

得分: 1

{
"将DataFrame转换为字典表示,然后将记录转储为JSON数据:": {
"示例代码": "import json\n\nrecords = df.rename(columns={'Median_Home_Value': 'value'}).to_dict('records')\njson_data = json.dumps({'median_home_value': records})",
"结果": {
"median_home_value": [
{
"Year": 2010,
"type": "analyzed",
"value": 11973.0
},
{
"Year": 2011,
"type": "analyzed",
"value": 12500.0
},
{
"Year": 2012,
"type": "analyzed",
"value": 13325.0
},
...
]
}
}
}

英文:

Convert the dataframe to dictionary representation then dump the records into json data:

  1. import json
  2. records = df.rename(columns={'Median_Home_Value': 'value'}).to_dict('records')
  3. json_data = json.dumps({'median_home_value': records})

Result

  1. {
  2. "median_home_value": [
  3. {
  4. "Year": 2010,
  5. "type": "analyzed",
  6. "value": 11973.0
  7. },
  8. {
  9. "Year": 2011,
  10. "type": "analyzed",
  11. "value": 12500.0
  12. },
  13. {
  14. "Year": 2012,
  15. "type": "analyzed",
  16. "value": 13325.0
  17. },
  18. ...
  19. }

huangapple
  • 本文由 发表于 2023年7月20日 13:28:31
  • 转载请务必保留本文链接:https://go.coder-hub.com/76726911.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定