尽管至少有两个
关于如何在Python的库中为DataFrame编制索引的优秀教程pandas
,但我仍然无法找到一种优雅的方法SELECT
来编写多个列。
>>> d = pd.DataFrame({'x':[1, 2, 3, 4, 5], 'y':[4, 5, 6, 7, 8]})
>>> d
x y
0 1 4
1 2 5
2 3 6
3 4 7
4 5 8
>>> d[d['x']>2] # This works fine
x y
2 3 6
3 4 7
4 5 8
>>> d[d['x']>2 & d['y']>7] # I had expected this to work, but it doesn't
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我已经发现(我认为是)这样一种不太优雅的方式
>>> d[d['x']>2][d['y']>7]
但这并不漂亮,可读性得分很低(我认为)。
有没有更好,更Python风格的方法?
这是一个优先运算符问题。
您应该添加额外的括号以使多条件测试正常工作:
d[(d['x']>2) & (d['y']>7)]
您提到的教程的这一部分显示了带有几个布尔条件的示例,并使用了括号。
问题内容: 在用户属于特定组织的情况下,我们具有以下实体关系。我的查询看起来像是“从org =:org用户选择”或“从org =:org用户输入和type =:type选择” 我在User类上有单独的索引。由于外键元素上的索引,因此第一个查询会很好。第二个查询是否对组织和类型列要求多列索引。如果是这样,我应该如何注释以创建一个这样的索引。 问题答案: 使用hibernate特定注释可以做到这一点。
问题内容: 我有下表: 除非有人提出一些疯狂的新无麸质饮食来席卷全国,否则大多数情况下,每一行都将被设置为。 我需要能够非常快速地查询该值为true的行。我创建了索引: 它似乎可以工作,但是我不知道如何确定是否仅索引值为true的行。我想确保它不会像在索引任何具有任何值的行时那样愚蠢。 我应该在子句中添加运算符,还是此语法完全有效?希望这不是那些将被否决30次的超级简单的RTFM问题之一。 更新:
问题内容: 如果索引是在类型列而不是类型列上设置(并且查询是在该列上进行的),则查询性能是否存在显着差异? 在我目前的设计中,我有2列: TINYINT(1),已 索引 约会时间 查询是 如果我改为在列上创建索引并运行这样的查询,会不会更慢? 问题答案: 这是一个具有1000万行的MariaDB(10.0.19)基准测试(使用sequence插件): 为了衡量我执行查询后使用和运行的时间。从概要分
本文向大家介绍pandas 布尔索引,包括了pandas 布尔索引的使用技巧和注意事项,需要的朋友参考一下 示例 可以使用布尔数组选择数据框的行和列。 有关熊猫文档的更多信息。
问题内容: 我想在MySQL表中添加一列,命名为。在此列中,只有一个记录可以设置为。 如何使用mysql将这个约束添加到我的列中? 谢谢! 更新 如果不是一个限制,我应该添加。我们如何处理数据库上的此类问题? 问题答案: 我认为这不是对单个默认值的情况进行建模的最佳方法。 取而代之的是,我将IsDefault列留在外面,并创建一个单独的表,该表只有一行,并且只有构成主表主键的列。在此表中,放置标识
问题内容: 如何轻松计算特定列所在的行数和特定列所在的行数? 我无法(或可以?)运行带有count()的查询,因为我将此计数嵌入到了having()子句中,例如: 但是通过上述方法,该函数计算了不等式两侧的每一行。 我尝试过这样的事情 但我得到一个错误 函数if(布尔值,整数,整数)不存在 (似乎它在postgresql中不存在)。 如何轻松计算column为true和false的行数? 问题答案