Я пытаюсь создать цикл с использованием Pandas/Python и файла Excel. Колонка вопрос называется «ИТЕРАЦИОННЫЙ» и имеет цифры от 1 до 6. Я пытаюсь запросить количество обращений в файле Excel в следующих диапазонах итерационных:Python/Pandas: Цитирование по списку чисел
- 1 до 2
- 4 до 6
Я уже предустановленный фрейм данных с именем «ДФ».
iteration_list = ["1,2", "3", "4,5,6"]
i = 1
for k in iteration_list:
table = df.query('STATUS == ["Sold", "Refunded"]')
table["ITERATION"] = table["ITERATION"].apply(str)
table = table.query('ITERATION == ["%s"]' % k)
table = pd.pivot_table(table, columns=["Month"], values=["ID"], aggfunc=len)
table.to_excel(writer, startrow = i)
i = i + 3
Отрывок сверху работает только для номера «3». Другие 2 сценария, похоже, не работают, поскольку они буквально ищут строку «1,2». Я попробовал другие способы, такие как:
- iteration_list = [1: 2, 3, 4: 6]
- iteration_list = [{1: 2}, 3, {4: 6}] к нет.
Есть ли у кого-нибудь предложения?
EDIT
После просмотра ответа Stidgeon, я, казалось, придумал следующие альтернативы. Ответ Stidgeon дает выход, но не тот, который я ищу (он дает 6 выходов - от итерации от 1 до 6 в каждом цикле).
Выше, мой список был следующим:
iteration_list = ["1,2", "3", "4,5,6"]
Если вы поиграйте с кавычками, вы можете ввести именно то, что вы хотите. Так как ваши строки буквально будут введены в эту линию, где% s является:
table = table.query('ITERATION == ["%s"]' % k)
Вы можете существенно поиграться со списком, чтобы соответствовать вашим конкретным потребностям с цитатами. Вот решение, которое может работать:
list = ['1", "2', 3, '4", "5", "6']