Transfer data format
轉換資料格式
DataFrame to list
result.values.tolist()
只有一欄位時,直接轉list會出現兩層array的狀況,只要先取出再轉即可。
list_product = df['product'].values.tolist()
參考: https://datatofish.com/convert-pandas-dataframe-to-list/
DataFrame to JSON
import json
# 轉為response常用的json格式
json.loads(data.to_json(orient="records", force_ascii=False))
參數 - orient
指定轉出的格式。
split
(默認):按欄名拆分。records
:轉換為記錄(JSON 文檔)。index
:轉換為具有索引值的對象(鍵用作索引)。columns
:轉換為具有列標籤的對象(鍵用作標籤)。values
:只轉換值。
參考:(看「二、DataFrame转为json」)
說明文件:https://www.cnblogs.com/a00ium/p/14875138.html
ERR
ValueError: Out of range float values are not JSON compliant
翻譯:超出範圍的浮點值不符合 JSON 標準
說明:因data中有「NaN」的值,Dataframe轉JSON時會根據欄位型態處理資料,NaN轉為浮點時就跳錯...
解:先將浮點欄位中NaN的值轉為0
data = data.fillna(0) #對所有資料處理
data['30'] = data['30'].fillna(0) #對特定欄位(30)做處理
JSON to DataFrame
import pandas as pd
# post進來的json轉為DataFrame
pd.DataFrame(data)
ERR
遇上「arrays must all be same length」錯誤,可嘗試指定JSONObject的key行列方式解決。
pd.DataFrame.from_dict(raw_df, orient='index')
from_dict方法參考:https://www.cjavapy.com/article/472/
Last updated