Получение Error KeyError: (8, 'произошло с индексом 0') при интеграции кода Python с Django. Код работает в Spyder - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь интегрировать код Python, который работает независимо в Spyder с Django, который я запускаю в Atom.

Код ниже

import pandas as pd
import datetime
month = request.POST.get('month')
start_month_no = request.POST.get('start_month')
month = int(month)


fin_data = pd.read_excel('C:\Resh\PythonWorkingDir\sample.xlsx', header=0)
fin_data = fin_data.drop(['Clarity Code', 'Additions to Projection if any', 
'Total Projection for the  Month INR',
                          'Invoiced Against Projection', 'Remarks'], axis=1)

fin_data.rename(columns={'SOW No/Work Order Number': 'SOW',
                         'PPM id': 'PPM',
                         'Project Name': 'ProjName'
                         },
                inplace=True)
print(fin_data)
fin_data.fillna(0, inplace=True)

prj_in_month = 5
inv_in_month = 6

for a in range(1, month + 1):
   fin_data[a] = fin_data.apply(lambda x: x[inv_in_month] - x[prj_in_month], axis=1)

   prj_in_month = prj_in_month + 2
   inv_in_month = inv_in_month + 2

   a = a + 1

Функция lamda работает, когдаprj_in_month = 5 и inv_in_month = 6, затем он принимает значения в столбцах (примечания 5 и 6 и позиции, а не имена столбцов).Но когда цикл запускается во второй раз, он выдает ошибку KeyError: (8, 'произошло с индексом 0'), которая выглядит мне во второй раз, когда ищет имя столбца 8 вместо 8-й позиции.Я не хочу передавать имена столбцов в lamda. Вместо этого я хочу передать позиции столбцов.

Странно то, что код прекрасно работает в spyder / pycham, но не при добавлении этого в views.pyв Джанго.

Может ли кто-нибудь мне помочь.

Спасибо, Решми

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...