引用索引上的for循环

时间:2019-05-07 11:40:27

标签: python pandas

我有一个pandas 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

这似乎很简单,我在这里做什么错了?

0 个答案:

没有答案