如何在pandas数据帧中设置行值?

时间:2014-12-04 10:43:44

标签: python pandas

我需要将每个组的第一行的值设置为False。

start_ix = group.head(1).index

print(start_ix)

  

Int64Index([20],dtype =' int64')

print df.iloc[start_ix]['start']

  

20错误

     

名称:start,dtype:bool

df.iloc[start_ix]['start'] = True

但是在检查DataFrame时,值保持False

1 个答案:

答案 0 :(得分:2)

所以基本上你所尝试的就是所谓的链式索引,可能会也可能不会起作用:

df.iloc[start_ix]['start'] = True

这可能有助于将此视为链接函数调用,这里的问题是有时它会返回一个您想要的视图,但有时它会返回一个副本,导致原始df没有变化。

所以你应该使用ix,它允许你明确地按整数值(或标签)索引,然后指定你想要设置数据的列标签:

df.ix[start_ix,'start'] = True

docs详细介绍了推荐的方法,通常在设置潜在副本的值时会引发警告,但无法捕获所有实例。

<强>更新

由于版本0.20.0 ix已弃用,而loc因此上述内容变为

df.loc[start_ix,'start'] = True