簡體   English   中英

如何從具有多個 arrays 的 json 文件創建 pandas dataframe

[英]How to create a pandas dataframe from a json file with multiple arrays

我正在嘗試從我的 Apple 健康數據的 json 文件創建一個 pandas dataframe。

我的 json 文件如下所示:

{
  "data": {
    "workouts": [],
    "metrics": [
      {
        "name": "active_energy",
        "units": "kcal",
        "data": [
          {
            "qty": 213.881,
            "date": "2022-04-12 00:00:00 -0600"
          }
        ]
      },
      {
        "name": "apple_exercise_time",
        "units": "min",
        "data": [
          {
            "date": "2022-04-12 00:00:00 -0600",
            "qty": 6
          }
        ]
      },
      {
        "name": "sleep_analysis",
        "units": "min",
        "data": []
      }
    ]
  }
}

在此數據中,有一個名為workouts的空數組和另一個名為metrics的數組。 我想從此文件中獲取metrics數組並將其轉換為 pandas dataframe,如下所示:

日期 名稱 數量 單位
2022-04-12 活躍能量 213.881 大卡
2022-04-12 apple_excersise_time 6個 分鍾

這是使用explode構造函數、分解和join的一種方法:

tmp = pd.DataFrame(my_data['data']['metrics']).explode('data')
s = tmp['data'].dropna()
out = tmp.drop(columns='data').join(pd.DataFrame(s.tolist(), index=s.index))

Output:

                  name units      qty                       date
0        active_energy  kcal  213.881  2022-04-12 00:00:00 -0600
1  apple_exercise_time   min    6.000  2022-04-12 00:00:00 -0600
2       sleep_analysis   min      NaN                        NaN

大約一個月前,有人在 SO 上與我分享了這個。 現在分享給大家。

import pandas as pd
df = pd.read_json("https://www.chsli.org/sites/default/files/transparency/111888924_GoodSamaritanHospitalMedicalCenter_standardcharges.json", lines=True)
print(df.head())
df.to_csv(r'C:\\your_path_here\\chsli.csv')

結果:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM