У меня есть 2D-фрейм Python Pandas 2D, где столбец ITEM является индексом.
ITEM | A | B
ITEM-1 | 1 | 3
ITEM-2 | 1 | 2
ITEM-3 | 2 | 2
У меня есть процесс создания нового столбца для нового jSON, который читает скрипт. Если элементы, содержащиеся в этом ответе jSON, уже существуют в фреймворке данных, значение присваивается существующему ITEM и новому столбцу. Скажем, я хочу добавить значение 3 в ITEM-1 в новый столбец C.
ITEM | A | B | C
ITEM-1 | 1 | 3 | 1
ITEM-2 | 1 | 2 |
ITEM-3 | 2 | 2 |
Но если элемент не существует в фрейме данных, мне нужно создать новую строку для фрейма данных и назначить значение для этой новой строки X столбца. Скажем, я хочу добавить значение 2 в ITEM-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"
Попробуй это:
dataframe.loc[element['name'],respResult['name']] = respElementValues['valueElement']
Удалив []
из element['name']