Eri*_*ula 2 json dataframe python-3.x pandas
专家,
我在将 Json 解析为 Pandas 然后将其保存为 CSV 格式时遇到问题。
data2 = {"date":"2018-01-02","data":{"AAPL":{"open":"170.16","close":"172.26","high":"172.30","low":"169.26","volume":"25555934"},"MSFT":{"open":"86.13","close":"85.95","high":"86.31","low":"85.50","volume":"22483797"}}}
Run Code Online (Sandbox Code Playgroud)
如果我尝试:
df = pd.DataFrame.from_dict(json_normalize(data2), orient='columns')
print(df)
Run Code Online (Sandbox Code Playgroud)
一切都打印在一行中:
如果我做 :
jdata = json.loads(data2)
df = pd.DataFrame(jdata)
print(df.T)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:TypeError:JSON 对象必须是 str、bytes 或 bytearray,而不是 'dict'
我希望以下表格式打印它,以便我可以将其另存为 csv :
Date Data Open Close High Low Volume
2018-01-02 AAPL 170.16 172.26 172.30 169.26 25555934
2018-01-02 MSFT 86.13 85.95 86.31 85.50 22483797
Run Code Online (Sandbox Code Playgroud)
实现我的目标的正确方法是什么?
谢谢 !!
您可以使用apply将 dict 键转换为 pandasSeries
df = pd.DataFrame.from_dict(data2)
df = pd.concat([df['date'],df['data'].apply(pd.Series)], axis=1)
print(df)
date open close high low volume
AAPL 2018-01-02 170.16 172.26 172.30 169.26 25555934
MSFT 2018-01-02 86.13 85.95 86.31 85.50 22483797
Run Code Online (Sandbox Code Playgroud)