#python #pandas #selenium
#python #pandas #selenium
Вопрос:
У меня есть файл CSV, который был создан с использованием Pandas. Ниже приведен вывод из следующего кода:
test = pd.read_csv('order.csv', header=0)
print(test.head())
3 16258878505032
0 3 16258876670024
1 3 16258876899400
2 3 16258876997704
Единственные данные, которые мне нужно обработать, — это информация во 2-м столбце и информация в 3-м столбце. Это данные заказа на поставку, где 2-й столбец представляет «количество», а 3-й столбец представляет «артикул».
Мне нужно взять строку 1, столбец 2 и ввести ее в поле ввода с помощью selenium. Мне нужна строка 1, столбец 3 и выполнить действие по выбору артикула на веб-странице. Добавьте товар в корзину и повторите цикл обработки строки 2, строки 3 и т.д.
Я знаю, как написать код selenium для выполнения веб-действий, но не уверен, как написать код pandas / python для выполнения итерации по CSV-файлу по одной строке за раз и как вызывать эти значения. Моя логика была бы следующей.
read order.csv
get quantity value and sku value for row (one row at the time)
visit website, inject quantity value
remain on website, select sku
add to cart
repeat loop until no more rows to process
Спасибо за вашу помощь.
Ответ №1:
Сначала используйте параметр names
в read_csv
, чтобы избежать преобразования первой строки данных в имена столбцов:
test = pd.read_csv('order.csv', names=['quantity','sku'])
print (test)
quantity sku
0 3 16258878505032
1 3 16258876670024
2 3 16258876899400
3 3 16258876997704
Поскольку возможна работа с selenium
и Web, используйте DataFrame.iterrows
или другие циклические решения:
def func(x):
q = x['quantity']
sku = x['sku']
print (q, sku)
#add selenium code
df.apply(func, axis=1)
Или:
for i, row in test.iterrows():
q = row['quantity']
sku = row['sku']
print (q, sku)
#add selenium code