【问题标题】:Loading json dict into dataframe将json dict加载到数据框中
【发布时间】:2018-01-03 19:58:47
【问题描述】:

我有一个格式像这样的 json dict

{"cache_age_milliseconds": 0, "rows": [{"values": [["Sonos_HXXpu71TY1g4HWWU2jXCJ8tcKu", 1483225200000, "87.61.241.100", "*null*"], 0.3605555555555556]}, {"values": [["Sonos_HXXpu71TY1g4HWWU2jXCJ8tcKu", 1483221600000, "87.61.241.100", "*null*"], 0.35888888888888887]}], "columns": [{"type": "array", "label": ["Household ID", "__hour__", "ip", "SerialNumber.Config.RoomType"]}, {"type": "number", "label": "measure_value"}]}

将其加载到数据框中的最快方法是什么?

【问题讨论】:

  • 您的 JSON 无效。
  • 这有什么问题?
  • pd.read_json(xxx)

标签: python json pandas csv dataframe


【解决方案1】:

我在这里可能错了,但这与您要寻找的内容接近吗? 因为我肯定能找到一种不那么脏的方法,但输出在这里很重要。

import pandas as pd

data = {"cache_age_milliseconds": 0, "rows": [{"values": [["Sonos_HXXpu71TY1g4HWWU2jXCJ8tcKu", 1483225200000, "87.61.241.100", "*null*"], 0.3605555555555556]}, {"values": [["Sonos_HXXpu71TY1g4HWWU2jXCJ8tcKu", 1483221600000, "87.61.241.100", "*null*"], 0.35888888888888887]}], "columns": [{"type": "array", "label": ["Household ID", "__hour__", "ip", "SerialNumber.Config.RoomType"]}, {"type": "number", "label": "measure_value"}]}
df = pd.DataFrame.from_dict([i["values"][0] for i in data["rows"]])
df.columns = data["columns"][0]["label"]
df.index = [i["values"][1] for i in data["rows"]]
df.index.name = data["columns"][1]["label"]

结果如下:

                                   Household ID       __hour__             ip SerialNumber.Config.RoomType
measure_value
0.360556       Sonos_HXXpu71TY1g4HWWU2jXCJ8tcKu  1483225200000  87.61.241.100                       *null*
0.358889       Sonos_HXXpu71TY1g4HWWU2jXCJ8tcKu  1483221600000  87.61.241.100                       *null*

【讨论】:

  • 非常好的解决方案! ++
猜你喜欢
  • 1970-01-01
  • 2021-11-17
  • 2018-04-07
  • 2016-06-08
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 2019-06-24
  • 1970-01-01
相关资源
最近更新 更多