当前位置: 首页 > 面试题库 >

有条件替换 Pandas

楚丰羽
2023-03-14
问题内容

我可能在做一些非常愚蠢的事情,但是我很沮丧。

我有一个数据框,我想用超过零的值替换特定列中的值。我以为这是实现此目标的一种方式:

df[df.my_channel > 20000].my_channel = 0

如果将通道复制到新的数据框中,这很简单:

df2 = df.my_channel 

df2[df2 > 20000] = 0

这完全符合我的要求,但似乎无法与通道一起用作原始数据帧的一部分。


问题答案:

.ixindexer可以在0.20.0之前的熊猫版本上正常工作,但是由于pandas为0.20.0 ,因此不推荐使用.ix indexer,因此应避免使用它。而是可以使用或索引器。你可以通过以下方法解决此问题:.lociloc

mask = df.my_channel > 20000
column_name = 'my_channel'
df.loc[mask, column_name] = 0

或者,一行


df.loc[df.my_channel > 20000, 'my_channel'] = 0

mask帮助你选择这些行df.my_channel > 20000为True,而df.loc[mask, column_name] = 0将值0

到所选择的行,其中mask在其名称是列存放column_name

更新: 在这种情况下,应该使用,loc因为如果使用iloc,则会NotImplementedError告诉你基于iLocation的基于整数类型的布尔索引不可用。



 类似资料:
  • 问题内容: 我想替换元素标签中的值,具体取决于它的值以及另一个元素的值(与所述元素处于同一级别),这两个元素到处都在同一个父元素标签中(每个父标签都是唯一的) (由于其自身的ID属性)。我想在存储过程中的此XML变量的各个位置进行更改。 作为第一次使用此计时器,我对如何修改整个xml中的元素感到困惑。这两个元素都存在于整个文档的同一父元素中,并且这些父标签中的每一个都有唯一的ID属性。 任何建议都

  • 具有不同角色的用户需要在网页顶部有不同的navbar。我的topnavs是th:片段,用单独的文件编写,这部分代码工作正常。但是当我使用th: switch和th:替换时,所有topnavs都会显示在网页中,而不仅仅是一个。 我在寻找这些问题的解决方案,但没有任何帮助: 带有多个大小写的胸腺叶开关语句 如何使用thymeleaf条件-if-elseif-else 我尝试过的事情: #2 #3 #4

  • 我有一个数据集,包含一系列国家和年份的几个指标的值(3072,1134行和列),但有些NaN。 下面是数据集的示例: 我想根据提交的

  • 当列名未知时,如何循环遍历整个数据框以删除包含特定字符串的单元格中的数据? 以下是我目前掌握的情况: 我的数据: 如果一个单元格包含一个字符串,例如“找到”,我如何删除它的全部内容?我想删除单元格中的所有内容(包括字符串之前和之后。)

  • 我有一个数据帧(df),看起来像这样: 现在,我的目标是,对于列中的每个,应将列中关联的-值替换为字符串。 到目前为止我做了什么 我偶然发现了,它替换了每个(这不是我要找的),缺少值和,这似乎是我想要的,但不起作用。此外,我尝试了这个: 缺少索引或某种迭代器来访问列中的等效值 我试过这个: 这显然不起作用。 我看了几个问题,但不能基于答案中的建议。布莱克的问题西蒙的问题szli的问题扬·威廉斯·图

  • 从该数据帧开始: 有一些缺失的值。我试图以行方式应用替换函数,例如在伪代码中: 我知道我可以做一些事情,比如: 函数定义如下: 获得: 但是先验地,我不知道字符串在列中的实际位置,所以我必须使用类似于的方法进行搜索,但要按行搜索。 编辑:每个字符串都可以出现在列中的任何位置。