引用索引上的for循环

2024-09-29 19:18:56 发布

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

我有一个新的df,我试图根据每一行相对于另一列的值的相对位置填充一个新列。假设MyColumn的“A”(总是在第一行)、“B”和“C”各有一个实例,它们的出现顺序是这样的,但是在A和B以及B和C之间有一些行。我想有一个新的列,其值为“a”、“B”或“C”,这取决于行相对于这些字母的位置。例如,如果A在MyColumn的第1行,B在第17行,我希望NewColumn的第1-16行具有值“A”。这是我到目前为止的情况

    df['NewColumn']  = 'NotAssigned'
    a_idx = df.index[df['MyColumn']=='A'] 
    b_idx = df.index[df['MyColumn']=='B']
    c_idx = df.index[df['MyColumn']=='C']


    for i in df.index:
        if i < b_idx :
            df.set_value[i, 'NewColumn','A']
        elif i < c_idx :
            df.set_value[i, 'NewColumn','B']
        else:  
            df.set_value[i, 'NewColumn','C']

运行此代码时,第0行出现以下错误:

TypeError: 'method' object is not subscriptable

这看起来很简单,我做错什么了


Tags: 实例indfforindexif顺序value

热门问题