首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么大熊猫在dtf.loc[]中使用方括号?

为什么大熊猫在dtf.loc[]中使用方括号?
EN

Stack Overflow用户
提问于 2021-09-20 12:37:39
回答 1查看 202关注 0票数 2

我想知道为什么是dtf.loc[x]而不是dtf.loc(x)。我读过loc是一个属性,所以它是有意义的,因为它不是一个函数调用,但是现在我不知道为什么有人把它变成一个属性(对属性不太了解),而不是一个函数--这对我来说更直观。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-20 13:29:42

因为潘达斯不是Python..。

更严重的是,Pandas是一个很好的库,它使用装腔作势的numpy (part os )模块以C的速度处理大型数组。但这是以一些警告为代价的:

  • 与numpy一致,索引接受整数或片的元组。这在numpy中是必需的,以便能够矢量化(使用C高速例程),accesses
  • loc只是返回索引器的数据文件的一个属性。它必须是特定的属性,因为df[x]已经被定义为df dataframe

x列。

它可能只是一个函数,这样对Python用户的干扰就更小了。但也有必要明确指出,这是一个索引访问。而且(我最初抱怨的原因),与numpy的效率和一致性在Pandas中更重要--与核心Python的一致性。一个很好的例子就是两个系列之间的相等。为了与numpy的一致性,is也是一个串联和而不是的布尔值。但是它只是破坏了许多Python的优点,防止使用in来检查一个系列的Python容器是否包含特定的系列:

代码语言:javascript
复制
a = pd.Series([1, 2, 3])
b = pd.Series([4, 5, 6])

pd.Series([1, 2, 3]) in [a, b]

提出:

代码语言:javascript
复制
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().

从中学到什么:只要接受这样一个事实,即Pandas语法有时与Python的正常用法不一致.

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69254569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档