Pandas-Python: Как вы пишете новые строки в Pandas? - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь сохранить список вывода JSON из API's GET requests в файл CSV, используя Pandas, но приведенные ниже коды генерируют только одну запись, но не создают новые строки.

образец вывода JSON :

ID : 27980
Title : ELSVIOS 6 Colors Boho Split Long <font><b>Dress</b></font> Fashion Women O-Neck Maxi <font><b>Dress</b></font> Summer Short Sleeve Solid <font><b>Dress</b></font> With Belt Vestidos XS-3XL32815751265US
Price : $10.32US 
Sale Price :$10.32

for resultsget in getlistproductsx:
                    producturls = resultsget['productTitle']
                    productids = resultsget['productId']
                    originalprices = resultsget['originalPrice']
                    saleprices = resultsget['salePrice']
                    print(producturls + str(productids) + originalprices + saleprices)
                    raw_data = {'product_title': [producturls],
                            'product_id': [productids],
                            'original_price': [originalprices],
                            'sale_price': [saleprices]}
                    df = pd.DataFrame(raw_data, columns = ['product_title', 'product_id', 'original_price', 'sale_price'])
                    df.to_csv('example2.csv')

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Вы, вероятно, хотите загрузить все свои строки в панды DataFrame и после этого выполните to_csv, например:

import pandas as pd
df = pd.DataFrame(getlistproductsx)
df.to_csv('csv.csv')
0 голосов
/ 01 ноября 2018

Как сказал kosist, вы перезаписываете свой CSV-файл.

Создайте второй DataFrame, к которому вы добавите данные, импортированные в цикл.

import pandas as pd
cols = ['product_title', 'product_id', 'original_price', 'sale_price']
df = pd.DataFrame(columns=cols)

for resultsget in getlistproductsx:
    producturls = resultsget['productTitle']
    productids = resultsget['productId']
    originalprices = resultsget['originalPrice']
    saleprices = resultsget['salePrice']

    print(producturls + str(productids) + originalprices + saleprices)
    raw_data = {'product_title': [producturls],
                'product_id': [productids],
                'original_price': [originalprices],
                'sale_price': [saleprices]}

    # create second DataFrame to which the data is added
    df2 = pd.DataFrame(raw_data, columns=cols)
    # append the newly created DataFrame to the one keeping the data
    df  = df.append(df2)

# then write the DataFrame to csv
df.to_csv('csv.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...