我正在尝试使用作为df一部分的几个布尔html" target="_blank">变量来过滤df,但一直未能做到。
样本数据:
A | B | C | D
John Doe | 45 | True | False
Jane Smith | 32 | False | False
Alan Holmes | 55 | False | True
Eric Lamar | 29 | True | True
C和D列的dtype是布尔值。我想仅使用C或D为True的行创建一个新的df(df1)。它看起来应该像这样:
A | B | C | D
John Doe | 45 | True | False
Alan Holmes | 55 | False | True
Eric Lamar | 29 | True | True
我已经尝试过类似的事情,因为它无法处理布尔类型,因此会遇到问题:
df1 = df[(df['C']=='True') or (df['D']=='True')]
有任何想法吗?
In [82]: d
Out[82]:
A B C D
0 John Doe 45 True False
1 Jane Smith 32 False False
2 Alan Holmes 55 False True
3 Eric Lamar 29 True True
解决方案1:
In [83]: d.loc[d.C | d.D]
Out[83]:
A B C D
0 John Doe 45 True False
2 Alan Holmes 55 False True
3 Eric Lamar 29 True True
解决方案2:
In [94]: d[d[['C','D']].any(1)]
Out[94]:
A B C D
0 John Doe 45 True False
2 Alan Holmes 55 False True
3 Eric Lamar 29 True True
解决方案3:
In [95]: d.query("C or D")
Out[95]:
A B C D
0 John Doe 45 True False
2 Alan Holmes 55 False True
3 Eric Lamar 29 True True
PS:如果您将解决方案更改为:
df[(df['C']==True) | (df['D']==True)]
它也会工作
熊猫文档-布尔索引
[为什么我们不应该使用“ PEP投诉”
df["col_name"] is True
代替df"col_name"] == True
?
In [11]: df = pd.DataFrame({"col":[True, True, True]})
In [12]: df
Out[12]:
col
0 True
1 True
2 True
In [13]: df["col"] is True
Out[13]: False # <----- oops, that's not exactly what we wanted
问题内容: 我有一个值列表,需要根据给定的布尔值列表中的值进行过滤: 我使用以下行生成一个新的过滤列表: 结果是: 这条线工作正常,但是(对我而言)看起来有点过大了,我想知道是否有更简单的方法来实现这一目标。 忠告 以下答案提供了两个好的建议: 1-不要像我一样命名列表,因为它是内置函数。 2-不要比较像我做的事情,因为这是不必要的。只需使用就足够了。 问题答案: 您正在寻找: 时序比较(py3.
问题内容: 我正在做熊猫分析。 我的表有700万行* 30列。单元格值的范围从-1到3随机。现在,我想根据列的值过滤掉行。 我了解如何根据多个条件进行选择,写下条件并通过“&”“ |”组合。 但是我有30列要过滤,并按相同的值过滤。例如,需要选择最后12列的值等于-1 上面的代码给了我一个布尔值。我需要实际的数据框。 这里的逻辑是“或”,表示如果任何列的值为-1,则需要选择该行。另外,很高兴知道我
我在ES中有两个问题。对于同一组文档,两者的周转时间都不同。两者在概念上都在做同样的事情。我没有什么疑问 1-这两者之间有什么区别?2-哪个更好使用?3-如果两者相同,为什么表现不同? 映射: 更新1: 我在同一组数据上尝试了bool/必须查询和bool/过滤器查询,但我发现了奇怪的行为 1-bool/必须查询能够搜索所需的文档 2-虽然bool/filter无法搜索文档。如果我删除第二个字段条件
问题内容: 我有一个csv文件,当我使用过滤列并使用多个索引时,该文件输入不正确。 我希望df1和df2除了丢失的虚拟列外应该相同,但这些列的标签错误。日期也被解析为日期。 使用列号而不是名称给我同样的问题。我可以通过在read_csv步骤之后删除虚拟列来解决此问题,但是我试图了解出了什么问题。我正在使用熊猫0.10.1。 编辑:修复错误的标头用法。 问题答案: @chip的答案完全错过了两个关键
问题内容: 我正在尝试使用三列阈值过滤pandas数据框 但是,我想在一个函数中执行此操作,在字典中将列名及其阈值提供给我。这是我的第一次尝试,可以。本质上,我将过滤器放入变量中,然后运行它: 现在,最后我将所有内容都放到了函数中,并且它停止了工作(也许函数不喜欢在函数中使用!): 我知道函数在函数内部使用时的行为会有所不同,但不确定如何解决该问题。另外,我想知道在给定两个输入的情况下,必须有一种
我有一个 Cassandra 它有 4 列(项目(文本),市场(文本项目是分区键和市场,位置和时间是相同顺序的聚类键。 应用程序需要在两种情况下查询 Cassandra 表 对于给定的项目,市场和位置通过查询库存表来获取记录。例如,将获取记录下面的项目x、市场l1和位置l1 对于给定的商品、市场和输入时间后的所有位置,通过查询库存表获取记录。例如,项目x,市场m1,将获取t1时间之后低于记录的所有