我想基于多个条件的评估创建一系列新的逻辑值。
举个例子
> df = pd.DataFrame({'id':[40, 20, 50, 5, 80], 'value': ['a', 'd', 'g', 'g', 'g']})
> df[(df.id > 40) & (df.value.isin(['a', 'g']))]
id value
2 50 g
4 80 g
然而,我想返回一个逻辑序列,即。
False
False
True
False
True
如果可能的话,我想用熊猫的方法。
这就是你需要的吗?
(df.id > 40) & (df.value.isin(['a', 'g']))
Out[2059]:
0 False
1 False
2 True
3 False
4 True
dtype: bool
只需使用:
s = (df.id > 40) & (df.value.isin(['a', 'g']))
print(s)
输出:
0 False
1 False
2 True
3 False
4 True
dtype: bool
问题内容: 如何将条件逻辑应用于Pandas DataFrame。 请参见下面显示的DataFrame, 我的原始数据显示在“数据”列中,并且期望的输出显示在其旁边。如果“数据”中的数字小于2.5,则所需的输出为False。 我可以应用循环并重新构建DataFrame …但是那是“非Python的” 问题答案: 只需将列与该值进行比较:
我正在编写一个代码,将滚动窗口应用于返回多列的函数。 输入:熊猫系列 预期输出:3列数据帧 res的内容: 错误: 我尝试过的: 在应用中更改原始=真 在应用中使用lambda函数 以列表/numpy数组/dataframe/series的形式返回fun1中的结果 我还浏览了SO中的许多相关帖子,以陈述以下几点: 熊猫-使用`。滚动()`在多个列上 但是指定的解决方案都没有解决这个问题。 有没有直
问题内容: 我想要按元素进行逻辑或运算符。我知道“或”本身不是我想要的。 我知道AND对应于NOT 。但是OR呢? 问题答案: 相应的运算符是: 将按元素检查值是否小于3或等于5。 如果您需要执行此操作的功能,我们有 。对于两个条件,您可以使用 或者,对于多种情况,请使用, 由于条件被指定为单独的参数, 因此不需要括号分组。
问题内容: 我想根据以下条件创建一个带有数值的新列: 一种。 b。 C。所有其他组合, 我希望最终结果如下: 我该怎么做? 问题答案: 为此,可以使用做,条件使用位和用于和与周围的多个条件括号由于运算符优先级。因此,返回条件为true的地方,否则返回:
问题内容: 我正在尝试使用Pandas在几个条件下进行布尔索引。我原来的DataFrame称为。如果执行以下操作,将得到预期的结果: 但是,如果我这样做(我认为应该是等效的),则不会返回任何行: 知道导致差异的原因是什么? 问题答案: 使用是因为运算符优先级: 或者,在单独的行上创建条件: 样品 :
我有一个如下所示的数据框,我必须准备“目标列” 如果同一列下的两个单词之间有逗号,则必须按第2行所示标记两次。如果没有逗号但有空格,则必须将其视为同一个单词,即必须标记一次。另外,请注意顺序也很重要(第3行和第6行)。忽略任何内容(即没有单词,因此没有标签) 我已经使用了迭代(即使用iloc,for循环),但是它需要大量的时间,因为数据点超过200k,标签的数量也超过20个。我希望有一个有效的代码