a = pd.Series([1, 2, 3])
b = pd.Series([4, 5, 6])
pd.Series([1, 2, 3]) in [a, b]
提出:
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
pd.Series([1, 2, 3]) in [a, b]
File "...Python39\site-packages\pandas\core\generic.py", line 1442, in __nonzero__
raise ValueError(
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
<;咆哮>;因为熊猫不是Python</咆哮>
更严重的是,Pandas是一个很好的库,它使用poserfulnumpy(部分操作系统scipy)模块以C速度处理大型阵列。但这是以一些警告为代价的:
loc
只是返回索引器的数据帧的属性。它必须是特定属性,因为df[x]
已定义为df
数据帧的x
列它可能仅仅是一个函数,对Python用户的干扰会更小。但也必须明确这是一种索引访问。而且(我最初咆哮的原因),numpy的效率和一致性在与核心Python的一致性中更为重要。一个很好的例子是两个系列之间的相等。为了与numpy保持一致,is也是一个系列,不是布尔值。但它只是破坏了一些Python好东西,阻止了使用
in
来检查Series的Python容器是否包含特定的Series:提出:
从中可以学到什么:只需接受这样一个事实,即Pandas语法有时与Python的正常用法不一致
相关问题 更多 >
编程相关推荐