我有一个新的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
这看起来很简单,我做错什么了
目前没有回答
相关问题 更多 >
编程相关推荐