我有一個不尋常但格式一致的長字串,我想將其轉換為 pandas 資料框。以下是重復格式的示例:
' {"Col A":"Val","Col B":10,"Col C":1},{"Col A":"Val","Col B":4,"Col C":0} '
所需的資料框將是這樣的:
Col A Col B Col C
"Val" 10 1
"Val" 4 0
我嘗試用括號將字串拆分為分隔符,但由于資料型別不同,我無法將每個拆分轉換為一行。
有沒有更簡單的方法來做到這一點?
uj5u.com熱心網友回復:
我能想象的最簡單的方法。
import json
import pandas as pd
txt = ' {"Col A":"Val","Col B":10,"Col C":1},{"Col A":"Val","Col B":4,"Col C":0} '
# simulate a list of dicts and parse it like a json file
data = json.loads(f'[{txt}]')
df = pd.DataFrame(data)
uj5u.com熱心網友回復:
eval()也適用于這種情況:
pd.DataFrame(eval(txt))
Col A Col B Col C
0 Val 10 1
1 Val 4 0
uj5u.com熱心網友回復:
您可以將字串評估為字典或將其解釋為 JSON。
評估不要使用eval(危險)但是ast.literal_eval:
s = ' {"Col A":"Val","Col B":10,"Col C":1},{"Col A":"Val","Col B":4,"Col C":0} '
from ast import literal_eval
import pandas as pd
df = pd.DataFrame(literal_eval(s.strip()))
對于 JSON,pandas.read_json直接使用:
s = ' {"Col A":"Val","Col B":10,"Col C":1},{"Col A":"Val","Col B":4,"Col C":0} '
import pandas as pd
df = pd.read_json(f'[{s}]')
輸出:
Col A Col B Col C
0 Val 10 1
1 Val 4 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/427573.html
下一篇:比較變數之間的百分比變化
