У меня есть 2D-фрейм данных Python Pandas, где столбец ITEM является индексом.
ITEM | A | B
ITEM-1 | 1 | 3
ITEM-2 | 1 | 2
ITEM-3 | 2 | 2
У меня есть процесс создания нового столбца для нового jSON, который читает сценарий.Если элементы, содержащиеся в этом ответе jSON, уже существуют в кадре данных, это значение присваивается существующему ПУНКТУ и новому столбцу.Допустим, я хочу добавить значение 3 к ПУНКТУ 1 в новый столбец C.
ITEM | A | B | C
ITEM-1 | 1 | 3 | 1
ITEM-2 | 1 | 2 |
ITEM-3 | 2 | 2 |
Но если элемент не существует в кадре данных, мне нужно создать новую строку для кадра данных и назначитьзначение для этой новой строки X столбца.Допустим, я хочу добавить значение 2 к ПУНКТУ 4 (новый элемент) в новый столбец C (ЗДЕСЬ МОЙ ВЫЗОВ).
ITEM | A | B | C
ITEM-1 | 1 | 3 | 1
ITEM-2 | 1 | 2 |
ITEM-3 | 2 | 2 |
ITEM-4 | | | 1
Этот процесс является динамическим, чтение ответа jSON.Я пытаюсь сделать это, как образец ниже, но это не правильно.
#get information of resultID
url = '<URL INVOKED>'
respResult = requests.get(url,headers=headers).json()
#add a new column to the dataframe
dataframe[respResult['name']] = ""
#get elements of the result
url = '<URL INVOKED>'
respElements = requests.get(url,headers=headers).json()
#populate the dataframe with the elements and their values
for element in respElements:
#get the values of the element
url = '<URL INVOKED'
respElementValues = requests.get(url,headers=headers).json()
if(element['name'] in df.index):
dataframe.loc[[element['name']],[respResult['name']]] = respElementValues['valueElement']
else:
#THIS BLOCK DOES NOT WORK
dataframe.loc[len(dataframe)] = element['name'];
dataframe.loc[[element['name']],[respResult['name']]] = respElementValues['valueElement'] #here the script returns the error "return_values_from_object(indexer) KeyError: ['ITEM-4'] not in index"