pandas之DataFrame格式给满足对应条件的某一列进行赋值 您所在的位置:网站首页 pandas新增一列并判断true pandas之DataFrame格式给满足对应条件的某一列进行赋值

pandas之DataFrame格式给满足对应条件的某一列进行赋值

2023-10-27 09:48| 来源: 网络整理| 查看: 265

1、在python中,我们常常遇到这种需求,就是需要给某DataFrame数据格式中满足某一条件的数据进行列表赋值,对于这种需求,如何赋值呢?下面进行测试。 2、数据构造

本次测试所构造数据如下: 在这里插入图片描述

3、数值修改

在这里插入图片描述 对于上面数据,我现在想将id为5的数据的value对应列修改成6,我们怎么改呢? 大多同学可能都会犯以下错误:使用如下语法:data[data.id == 5].value = 10 但是运行之后会发现,该列的数值并没有被修改:

在这里插入图片描述 这是应为你通过id进行赛选数据之后再取value的时候,此时变量已经不是在操作原来的那张表了,而是在操作一个新的变量data[data.id == 5],因此无法进行赋值:

4、正确做法 1、通过切片的方式进行赋值:

思路:首先data[data.id == 5]将数据取出来,然后在取该变量的index,data[data.id==5].index,注意此时数据类型为Int64Index格式,如下,为此我们将其转换成列表,data[data.id ==5].index.tolist(),此时就获取了所有该id的索引值。 在这里插入图片描述 data[data.id ==5].index.tolist() 输出: 在这里插入图片描述 获取所有的index之后我们就可以使用loc函数了:如下: data.loc[data[data.id == 5].index.tolist(),‘value’] = 10

在这里插入图片描述 此时可以看到已经全部修改为10

2、此外,还可以使用相同长度的list进行对其修改

如我还是要讲上面的3个id值为5的数据分别修改为11,12,13:我们可以这样使用: 在这里插入图片描述 此时可以看到,值已经修改过来了。

3、还可以通过切片对连续数据进行修改:如下

如,我要将前面连续4组数据修改为1,2,3,4:我们可以这样使用 data[:4].value = [1,2,3,4] 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有