2016-01-26 3 views
2

Я пытаюсь создать цикл с использованием 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'] 

ответ

1

Просто сосредоточиться на получение значений из списка строк, это работает для меня (хотя - как всегда - может быть более вещими подходы):

lst = ['1,2','3','4,5,6'] 

for item in lst: 
    items = item.split(',') 
    for _ in items: 
     print int(_) 

Хотя вместо печати в конце вы можете передать значение своему сценарию.

Это будет работать, если все ваши строки являются либо одиночными числами, либо цифрами, разделенными запятыми. Если данные будут последовательно отформатированы таким образом, вам может потребоваться настроить этот код.

Смежные вопросы