我有以下從 API 中提取的資料框,在該 df 中有一列我需要從中提取資料,但該列中資料的結構是字典串列:

我可以使用以下代碼塊從該字典中獲取我關心的資料:
for k,v in d.items():
for i,j in v.items():
if isinstance(j, list):
for l in range(len(j)):
for k in j[l]:
print(j[l])
我得到了這樣的結構,所以我需要在字典串列中獲取每個“值”

然后將它們組織在一個資料框中。例如字典串列中的第一項:

一旦我得到了上述結構,我怎么能制作像影像中那樣的資料幀?
原始資料:
data = {'rows': [{'values': ['Tesla Inc (TSLA)', '$1056.78', '$1199.78', '13.53%'], 'children': []}, {'values': ['Taiwan Semiconductor Manufacturing Company Limited (TSM)', '$120.31', '$128.80', '7.06%'], 'children': []}]}
uj5u.com熱心網友回復:
您可以使用pandas. 首先將您的資料轉換為pd.DataFrame,然后使用apply(pd.Series)擴展列內的'values'串列以分隔列和set_axis更改列名的方法:
import pandas as pd
data = {'rows': [{'values': ['Tesla Inc (TSLA)', '$1056.78', '$1199.78', '13.53%'], 'children': []}, {'values': ['Taiwan Semiconductor Manufacturing Company Limited (TSM)', '$120.31', '$128.80', '7.06%'], 'children': []}]}
out = pd.DataFrame(data['rows'])['values'].apply(pd.Series).set_axis(['name','price','price_n','pct'], axis=1)
輸出:
name price price_n pct
0 Tesla Inc (TSLA) $1056.78 $1199.78 13.53%
1 Taiwan Semiconductor Manufacturing Company Lim... $120.31 $128.80 7.06%
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/403833.html
標籤:
上一篇:如何根據列中的唯一值將dask資料幀拆分為多個磁區?
下一篇:如何修改資料集
