我正在将json文件导入python3 jupyter笔记本中。 json文件的格式为
我以这种方式导入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:“ ['fromBathroom''fromParking''dfromBathroom''dfromParking']不在索引中”
这是因为这些功能嵌套在json文件的“转弯”和“距离”中。是否有一种方法可以取消嵌套这些功能,以便我可以像在深度和面积中获取值那样以同样的方式索引到数据框中?
谢谢您的见解。
答案 0 :(得分:0)
也许您可以提取df1 = df['turns']
,df2 = df['distances']
和df3 = df['areas', 'depth]
,然后执行df4 = pd.concat([df1, df2, df3], join='inner', axis=1)
see pandas doc
或直接:pd.concat([df['turns'], df['distances'], df['areas', 'depth]], join='inner', axis=1)
编辑:
我尝试了一些东西,希望它是您想要的东西:
link to the image with the code and the results I get with 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 - How to flatten a hierarchical index in columns
df.columns = [' '.join(col).strip() for col in df.columns.values]
应该是您要寻找的