"如何给已有的pandas dataframe添加新的索引行?"

2024-10-03 15:30:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python Pandas 2D dataframe,其中列项是索引。在

ITEM   | A | B
ITEM-1 | 1 | 3
ITEM-2 | 1 | 2
ITEM-3 | 2 | 2

我有一个为脚本读取的新jSON创建新列的过程。如果此jSON响应中包含的项已存在于dataframe中,则将该值分配给现有项和新列。假设我想在新列C的ITEM-1中添加值3

^{pr2}$

但是如果dataframe中不存在该项,我需要为dataframe创建一个新行,并为这个新的rowx列分配值。假设我想将值2添加到新列C的ITEM-4(newitem)中(这是我的挑战)。在

^{3}$

这个过程是动态的,读取一个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"

Tags: ofthenamejsonurldataframegetelement
1条回答
网友
1楼 · 发布于 2024-10-03 15:30:09

试试这个:

dataframe.loc[element['name'],respResult['name']] = respElementValues['valueElement']

通过从element['name']中删除{}

相关问题 更多 >