簡體   English   中英

有沒有辦法在python3 jupyter筆記本中取消嵌套熊貓數據框?

[英]Is there a way to un-nesting a pandas dataframe in a python3 jupyter notebook?

我正在將json文件導入python3 jupyter筆記本中。 json文件具有以下格式

  1. 賓語
    • 房間[26個要素]
      • 0
        • 轉彎
          • 從浴室
          • 從停車
        • 距離
          • 浴室
          • 停車
        • 深度
        • 區域
      • 1個
        • ....等
    • 名稱

我以這種方式導入json文件:

import pandas as pd
import numpy as np
import json
from pandas.io.json import json_normalize

with open("rooms.json") as file:
  data = json.load(file)
df = json_normalize(data['rooms'])

我現在正嘗試以矩陣狀格式繪制6個維度中的每個維度,總共繪制36張圖。

我正在嘗試通過以下方式:

col_features = ['fromBathroom', 'fromParking', 'dfromBathroom', 'dfromParking', 'depth', 'area']
pd.plotting.scatter_matrix(df[col_features], alpha = .2, figsize = (14,8))

這不起作用,因為我收到一條錯誤,內容為:KeyError:“ ['from'Bathroom''fromParking''dfromBathroom''dfromParking']不在索引中”

這是因為這些功能嵌套在json文件的“轉彎”和“距離”中。 有沒有一種方法可以取消嵌套這些功能,以便我可以像深度和面積那樣獲取值的方式索引到數據框中?

感謝您的任何見解。

也許您可以提取df1 = df['turns']df2 = df['distances']df3 = df['areas', 'depth]然后執行df4 = pd.concat([df1, df2, df3], join='inner', axis=1) 參見pandas doc

或直接: pd.concat([df['turns'], df['distances'], df['areas', 'depth]], join='inner', axis=1)

編輯:

我嘗試了一些東西,希望它是您要尋找的東西:

鏈接到帶有代碼和通過Jupyter獲得的結果的圖像

df1 = df['turns']
df2 = df['distances']
df3 = pd.DataFrame(df['depth'])
df4 = pd.DataFrame(df['area'])
df_recomposed = pd.concat([df1, df2, df3, df4], join='inner', axis=1)

Pandas-如何展平列中的層次結構索引

df.columns = [' '.join(col).strip() for col in df.columns.values]應該是您要查找的內容

暫無
暫無

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

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