首页 > 解决方案 > 如何在 python(pandas) 中保存数据

问题描述

当我将数据保存到 csv 文件时,仅保存 id 为 103 的记录,而 id 为 101 和 102 的记录不可用。

import pandas as pd
import requests as rq

for vehicleList in range(101, 103):
    vehicleList = vehicleList + 1
    x = str(vehicleList)

    r = rq.get('https://api.tfl.gov.uk/vehicle/' + x + '/arrivals')
    r = r.text
    df = pd.read_json(r)

    df.to_csv('filename.csv')

标签: pythonpandasdataframefor-looprequest

解决方案


您需要在保存之前连接数据。例如:

import pandas as pd
import requests as rq

temp = pd.DataFrame()
df = pd.DataFrame()

for vehicleList in range(101, 103):
    vehicleList = vehicleList + 1
    x = str(vehicleList)
    r = rq.get('https://api.tfl.gov.uk/vehicle/' + x + '/arrivals')
    r = r.text
    temp = pd.read_json(r)

    # some identifier here  
    temp['Type'] = x

    # concat
    df = pd.concat([df, temp]).reset_index(drop=True)

df.to_csv('filename.csv')

您为每个循环分配一个临时 DataFrame temp,然后添加一个唯一的 id 来表示该组temp['Type'],然后连接到df. 循环完成后,您保存 df 并包含所有迭代。


推荐阅读