pandas中iloc()函数的参数问题
我刚刚开始学习pandas,在一份代码中出现了df.iloc[[1][0]]
(df是shape为(60935, 54)的pd.DataFrame数据类型)的调用,从代码上下文上理解df.iloc[[1][0]]
应该是df
的一行,但是应该如何理解[[1][0]]
呢?为什么iloc[]
中的参数会允许接受两个相邻的列表?iloc[]
内部是如何处理的?这显然不是对行与列的索引。并且,我发现第二个数字不是0
或-1
时会出现索引出界的错误。这又是为什么呢?
我做了如下试验
mydict = [{'a': 1, 'b': 2, 'c': 3, 'd': 4},
{'a': 100, 'b': 200, 'c': 300, 'd': 400},
{'a': 1000, 'b': 2000, 'c': 3000, 'd': 4000}]
df = pd.DataFrame(mydict)
print(df.iloc[[0][-1]].shape)
输出为(4,)
print(df.iloc[[0][0]].shape)
输出为(4,)
print(df.iloc[[0]].shape)
输出为(1, 4)
print(df.iloc[[0][1]].shape)
输出为IndexError: list index out of range
print(type(df.iloc[[0]]))
输出为<class 'pandas.core.frame.DataFrame'>
print(type(df.iloc[[0][0]]))
输出为<class 'pandas.core.series.Series'>