我有一个Python Pandas 2D数据框,其中ITEM列是索引。
ITEM | A | B
ITEM-1 | 1 | 3
ITEM-2 | 1 | 2
ITEM-3 | 2 | 2
我有一个为脚本读取的新jSON创建新列的过程。如果此jSON响应中包含的项目已存在于数据框中,则将该值分配给现有的ITEM和新列。假设我想将ITEM-1的值3添加到新列C。
ITEM | A | B | C
ITEM-1 | 1 | 3 | 1
ITEM-2 | 1 | 2 |
ITEM-3 | 2 | 2 |
但是,如果该项目在数据框中不存在,则需要为该数据帧创建一个新行,并为此新行X列分配值。假设我想将ITEM-4(新项目)的值2添加到新列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"
答案 0 :(得分:0)
尝试一下:
dataframe.loc[element['name'],respResult['name']] = respElementValues['valueElement']
通过从[]
中删除element['name']