首页 > 解决方案 > 使用循环将dict插入数据框

问题描述

使用 for 循环从 API 获取数据,但只显示最后一行。如果我print用 statement 而不是d=,我会出于某种原因得到所有记录。如何填充Dataframe所有值?

我尝试使用 for 循环和附加但不断得到错误的结果

for x in elements:
    url = "https://my/api/v2/item/" + str(x[number"]) + "/"
    get_data = requests.get(url)
    get_data_json = get_data.json()
    d = {'id': [x["enumber"]], 
         'name': [x["value1"]["name"]],
         'adress': [value2["adress"]],
         'stats': [get_data_json["stats"][5]["rating"]]
        }
df = pd.DataFrame(data=d)
df.head()

结果:

id name  order  adress  rating 

只有最后一行显示,可能是因为它会覆盖直到最后一个元素。我应该在某处放置另一个 for 循环,还是有一些我看不到的明显解决方案?

标签: pythonpandas

解决方案


将所有数据放入字典列表中,然后在最后转换为数据框

在代码的顶部写:

all_data = []

然后在你的循环中,在 d = {...} 之后,写

all_data.append(d)

最后在最后(循环结束后)

df = pd.DataFrame(all_data)

推荐阅读