use*_*654 15 python python-2.7 pandas
>>> import pandas as pd
>>> pd.__version__
'0.16.1'
>>> s1 = pd.Series([1, 3, 5], index=list('abc'))
>>> s1.iloc(0)
<pandas.core.indexing._iLocIndexer object at 0x10ca3f690>
Run Code Online (Sandbox Code Playgroud)
我期望返回整数1 s1.iloc(0),但是得到了一个_iLocIndexer对象.我该怎么办这个对象?我该如何使用它?
use*_*654 21
该解决方案,由于@JohnE,就是用方括号[0],而不是(0)用iloc.
通过挖掘一些熊猫代码后的更多信息.
s1.iloc使得iloc看起来像一个方法.但它是一个属性,属性的值是_iLocIndexer. _iLocIndexer可以使用参数调用,并返回自身的副本,忽略任何args或kwargs(请参阅pandas.core.indexing._NDFrameIndexer.调用 pandas代码).这就是s1.iloc(0)有效呼叫的原因.
当s1.iloc[0]使用方括号调用时,_iLocIndexer会实例化一个并且对[]运算符的调用会导致调用iLocIndexer'`getitem'方法.
这同样适用于其他索引真的- ,,loc 和.这些索引器使用类方法pandas.core.generic.NDFrame._create_indexer 进行安装.ixatiatsetattr
| 归档时间: |
|
| 查看次数: |
5961 次 |
| 最近记录: |