我来自C背景,最近开始学习python。我正在学习索引和选择数据。我遇到了. iloc[]
在类系列
,DataFrame
和面板
在熊猫库。我不明白什么是. iloc
?是功能还是属性?很多时候,我错误地使用()
而不是[]
,并且没有得到实际的结果(但它不会给我带来错误)。
例子:
In [43]: s = pd.Series(np.arange(5), index=np.arange(5)[::-1], dtype='int64')
In [44]: s[s.index.isin([2, 4, 6])]
Out[44]:
4 0
2 2
dtype: int64
In [45]: s.iloc(s.index.isin([2,4,6]))
Out[45]: <pandas.core.indexing._iLocIndexer at 0x7f1e68d53978>
In [46]: s.iloc[s.index.isin([2,4,6])]
Out[46]:
4 0
2 2
dtype: int64
有谁能告诉我在哪里可以更多地研究这类运营商。
. iloc
是一个类实例。
pd.DataFrame().iloc
Out[2]: <pandas.core.indexing._iLocIndexer at 0x97a2470>
来源:熊猫源代码-indexing.py#L1626
实用的答案是:您应该将iloc
和loc
分别视为python列表和字典的扩展,并将它们视为查找,而不是函数或方法调用。因此,根据python语法,始终使用[]
而不是()
。
>>> ser = pd.Series( { 'a':3, 'c':9 } )
>>> ser.loc['a'] # pandas dictionary syntax (label-based)
3
>>> ser.iloc[0] # pandas list/array syntax (location-based)
3
数据帧基本上是一样的,只是需要指定一个额外的维度,这也是iloc
和loc
变得更有用的地方,但这超出了这个问题的范围。
更深层次的答案是:如果你真的想从更深层次上理解这一点,你需要理解\uuu getitem\uu
。你可以从这里开始学习一些基础知识。@ayhan在上述评论中提供的第二个链接中的答案也非常好,与您的问题非常相关。
因此.loc和.iloc不是典型的函数。它们以某种方式使用[和]来包围参数,使其与普通数组索引相当。然而,我从未在另一个库中看到过这种情况(我可以想到,可能numpy就是这样的东西,我不知道它在技术上是如何工作的/在python代码中是如何定义的)。 本例中的括号是否只是函数调用的语法糖?如果是这样,那么如何让任意函数使用括号而不是括号呢?否则,它们的使用/定义有什么特殊之处?
这里我理解哈希(#)符号将定义为本地模板变量,但是前面的星号是什么意思呢?还有,有必要吗? 下面是使用括号的示例: 我有点理解周围的括号将它绑定到HTML属性/Angular指令。这是否意味着它们是Angular计算表达式的指针?就像是Angular 1中的的等价物? 我猜真正的问题是,这些符号在Angular 2中有特殊的含义吗,知道何时使用每一个的最简单的方法是什么?谢谢!!
问题内容: 而且我仍然无法理解花括号的工作原理,特别是由于诸如简单程序这样的页面: http://wiki.python.org/moin/SimplePrograms 在各处使用大括号。我了解方括号和规则的圆括号,但是我不知道“定义字典”的含义或它们应该代表的含义。 问题答案: Python中使用“大括号”来定义字典。字典是一种将一个值映射到另一个值的数据结构,就像英语词典如何将单词映射到其定义
问题内容: 它们都有效吗?是出于某些原因而首选? 问题答案: 方括号是列表,括号是元组。 列表是可变的,这意味着您可以更改其内容: 而元组不是: 另一个主要区别是,元组是可哈希的,这意味着您可以将其用作字典的键。例如: 请注意,正如许多人指出的那样,您可以将元组加在一起。例如: 但是, 这并不意味着元组是可变的 。在上面的示例中,通过将两个元组加在一起作为参数来构造 新的 元组。原始元组未修改。为
问题内容: 我在jQuery文件中找到了这个: 花括号做什么? 问题答案: 在您的情况下,这是一个传递给CSS函数的对象。 在这里你也可以使用 这是物体的另一个例子
问题内容: 我正在阅读一些JMockit示例并找到以下代码: 通用标识符中的代字号是什么意思?我知道这是一元按位NOT运算符,但在这里看不到操作数。 另外,我尝试编译它并出现错误。我只是想念什么吗? 问题答案: 它只是“与声明中相同”的简写。 一些IDE(例如IntelliJ)也使用此功能。 磁盘上的文件没有此标记,这只是IDE GUI中的压缩。