更新pandas中密钥的单个单元格

2024-03-29 09:49:50 发布

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

我试图迭代数据帧中的项并更新当前行。在

我正在迭代(而不是使用数据框应用)因为我需要根据数据帧中的值来处理文件。注意:由于各种原因我不想使用数据框应用在这里。在

df是数据帧

for key,item in df.iterrows():
    df.xs(key)['downloaded']=True

如果我这么做

^{pr2}$

“已下载”字段尚未更新(显示为False)。如何使其正确更新?在

实际上,我要做的是更新给定键的单个列值。在


Tags: 文件数据keyinfalsetruedffor
2条回答

xs()默认情况下创建数据的副本,因此要修改原始数据,应传递copy=False

for key,item in df.iterrows():
    df.xs(key, copy=False)['downloaded']=True

正如@phillipcloud指出的,loc更适合这份工作。如果将键指定为元组,也可以设置多个索引集。在

In [2]: mi = DataFrame(dict(
         A = np.arange(5).astype(np.float64), 
         B = np.arange(5).astype(np.int64)),
            index=MultiIndex.from_tuples(tuple(zip(*[['bar','bar','baz','baz','baz'],['one','two','one','two','three']])),names=['first','second']))

In [3]: mi
Out[3]: 
              A  B
first second      
bar   one     0  0
      two     1  1
baz   one     2  2
      two     3  3
      three   4  4

In [4]: mi.loc[('baz','two'),'B'] = -5

In [5]: mi
Out[5]: 
              A  B
first second      
bar   one     0  0
      two     1  1
baz   one     2  2
      two     3 -5
      three   4  4

相关问题 更多 >