簡體   English   中英

python向下循環一列並將輸出追加到數據框

[英]python loop down a column and append output to a dataframe

我正在使用df.iterrows()迭代一列產品代碼:

然后將代碼發送到API,並返回有關我的產品的各種詳細信息。 即新的和二手的銷售價格。

每次迭代之后,我想將數據追加到數據框。 我應該在數據框中看到100行數據,但是我收到的只是最終產品代碼的一行數據。

我想我需要創建第二個嵌套循環,每次迭代都將我的輸出添加到數據幀中,但是我不確定從哪里開始。 我的代碼如下。 任何幫助,將不勝感激。

import numpy as np
import pandas as pd

accesskey = 'xxxx'
api = keepaAPI.API(accesskey)

df = pd.read_excel('C:/Users/xxxx.xlsx',
                  sheet_name = 'abebooks',
                  header = 0,
                  index_col = None,
                  usecols = "A:P",
                  convert_float = True)

for index, row in df.iterrows():
products = api.ProductQuery(row['xxx'])
product = products[0]

newprice = products[0]['data']['NEW']
newpricetime = products[0]['data']['NEW_time']
usedprice = products[0]['data']['USED']
usedpricetime = products[0]['data']['USED_time']
bsr = products[0]['data']['SALES']
bsrtime = products[0]['data']['SALES_time']

df = pd.DataFrame([[products[0]['title'], 
products[0]['asin'],newprice[-1], usedprice[-1], bsr[-1], 
products[0]['binding']]])

df2 = pd.DataFrame([], columns=list(["title", "Asin", 
"New price", "Used price", "BSR", "Binding"]))

df.append(df2, ignore_index=True)

最后到達那里,創建一個數據幀列表,並在循環結束時連接它們:

dfa_list = []

import numpy as np
import pandas as pd

accesskey = 'xxxx'
api = keepaAPI.API(accesskey)

df = pd.read_excel('C:/Users/xxxx.xlsx',
              sheet_name = 'abebooks',
              header = 0,
              index_col = None,
              usecols = "A:P",
              convert_float = True)

for index, row in df.iterrows():
products = api.ProductQuery(row['xxx'])
product = products[0]

newprice = products[0]['data']['NEW']
newpricetime = products[0]['data']['NEW_time']
usedprice = products[0]['data']['USED']
usedpricetime = products[0]['data']['USED_time']
bsr = products[0]['data']['SALES']
bsrtime = products[0]['data']['SALES_time']

df = pd.DataFrame([[products[0]['title'], 
products[0]['asin'],newprice[-1], usedprice[-1], bsr[-1], 
products[0]['binding']]])

df2 = pd.DataFrame([], columns=list(["title", "Asin", 
"New price", "Used price", "BSR", "Binding"]))


dfa_list.append(df2)

it_df = pd.concat(dfa_list)

暫無
暫無

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

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