Экспортируйте один CSV-файл вместо 5 - PullRequest
0 голосов
/ 02 октября 2019

Я написал следующий код. Логика такова: 1. вводится список номеров деталей 2. цена будет возвращена для каждой детали из базы данных на веб-сайте 3. Эта деталь может принадлежать одной из пяти компаний, поэтому создаются 5 CSV-файлов.

Например, ниже приведен исходный список номеров деталей (входные данные):
b123
nadsf
ower
weoa

На выходе будет 5 CSV-файлов, возвращаяцена только на запчасти, принадлежащие этой компании. В этом случае только компания «ower» принадлежит компании A, поэтому возвращается только одна цена, и для всех 5 компаний будет сгенерировано 5 различных файлов CSV

0     
1     
2     3.5
3       

Пожалуйста, см. Ниже мой код:

import pandas as pd


df = pd.read_excel(r'C:\Users\212677036\Documents\test_Trish.xlsx')
PN = pd.DataFrame(df, columns=['Product code'])

i = 0

Total_rows = PN.shape[0]
partnumlist = []
partnumlist1 = []
partnumlist2 = []   
partnumlist3 = []
partnumlist4 = []


while i < Total_rows:

         data = {"partOptionFilter": {"PartNumber": PN.iloc[i, 0], "AlternativeOemId": "17155"}}
         r = requests.post('https://www.partsfinder.com/Catalog/Service/GetPartOptions', json=data).json()

         partnumlist.append(r['Data']['PartOptions'][0]['YourPrice'])

         data1 = {"partOptionFilter": {"PartNumber": PN.iloc[i, 0], "AlternativeOemId": "17475"}}
         r1 = requests.post('https://www.partsfinder.com/Catalog/Service/GetPartOptions', json=data1).json()

         partnumlist1.append(r1['Data']['PartOptions'][0]['YourPrice'])

         data2 = {"partOptionFilter": {"PartNumber": PN.iloc[i, 0], "AlternativeOemId": "16880"}}
         r2 = requests.post('https://www.partsfinder.com/Catalog/Service/GetPartOptions', json=data2).json()

         partnumlist2.append(r2['Data']['PartOptions'][0]['YourPrice'])

         data3 = {"partOptionFilter": {"PartNumber": PN.iloc[i, 0], "AlternativeOemId": "47221"}}
         r3 = requests.post('https://www.partsfinder.com/Catalog/Service/GetPartOptions', json=data3).json()

         partnumlist3.append(r3['Data']['PartOptions'][0]['YourPrice'])

         data4 = {"partOptionFilter": {"PartNumber": PN.iloc[i, 0], "AlternativeOemId": "17045"}}
         r4 = requests.post('https://www.partsfinder.com/Catalog/Service/GetPartOptions', json=data4).json()

         partnumlist4.append(r4['Data']['PartOptions'][0]['YourPrice'])

         i=i+1

pd.DataFrame(partnumlist).to_csv(r'C:\Users\212677036\Documents\output21.csv')
pd.DataFrame(partnumlist1).to_csv(r'C:\Users\212677036\Documents\output22.csv')
pd.DataFrame(partnumlist2).to_csv(r'C:\Users\212677036\Documents\output23.csv')
pd.DataFrame(partnumlist3).to_csv(r'C:\Users\212677036\Documents\output24.csv')
pd.DataFrame(partnumlist4).to_csv(r'C:\Users\212677036\Documents\output25.csv')

Я хочу объединить файлы CSV, поэтому вместо 5 файлов мне нужен только один файл, возвращающий все цены:

0 1,5

1 24

2 3,5

3 231

Любая помощь / предложения приветствуются!

1 Ответ

0 голосов
/ 02 октября 2019

Вы можете объединить кадры данных перед экспортом в CSV. Существует несколько способов объединения фреймов данных, например .merge(), .join() и .concat(). Я думаю, что .concat() будет то, что вы ищете.

list_of_dataframes = [pd.DataFrame(partnumlist),pd.DataFrame(partnumlist1),
               pd.DataFrame(partnumlist2),pd.DataFrame(partnumlist3)
               pd.DataFrame(partnumlist4)]

pandas.concat(list_of_dataframes,axis=1).to_csv(r'C:\Users\212677036\Documents\output25.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...