簡體   English   中英

如何從python中的字符串輸出創建pandas數據框

[英]how do create a pandas data frame from a string output in python

有一堆rest api請求,每個請求都有相似的數據。 一旦我調用 url 並解析我想要的數據,我想創建 pandas 數據框,在完成所有請求后創建一個大數據框。 所以下面的數據字符串應該附加到數據框:

   #this code is to call each url and get the data 
    hyperId=['hyper1', 'hyper2','hyper3']
    #creating empty data frame with column names
    df1=pd.DataFrame(columns = ['id','servername', 'modelname'

    for id in hyperId1:
        hyperUrl="http://testabc"+id
        resp = requests.get(hyperurl)
        data1=id+","+resp['servername']+","+resp['model']

        #output of each request
        print(data1)
        hyper101,serverabc,proliant

我需要將 data1 附加到名為 df1 的數據框,如下所示

df1 = pd.read_csv(io.StringIO(data1))
df1=df1.append(data)

我對python和pandas很陌生。 當我運行它時,它顯示空數據框,所有內容都附加到列中,包括列名和實際數據。 任何幫助,將不勝感激。

不要預先創建任何數據框,也不要轉換和連接字符串值(因為它可能會對大數據產生性能影響)。 只需創建一個空列表來保存每一行(作為一個列表),並將每個列表附加到一個循環中,然后最后創建數據框,一旦您需要列表列表。

import  requests
# this code is to call each url and get the data 
hyperId = ['hyper1', 'hyper2', 'hyper3']
# Don't create any Data Frame
# df1 = pd.DataFrame(columns=['id', 'servername', 'modelname'])
dataList = []
for id in hyperId:
    hyperUrl = "http://testabc" + id
    resp = requests.get(hyperUrl)
    # data1 = id + "," + resp['servername'] + "," + resp['model']
    dataList.append([id, resp['servername'], resp['model']])

df = pd.DataFrame(dataList, columns=['id', 'servername', 'modelname'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM