我曾经看过python DataFrames有时会使用[index,:]符号进行子集化,有时使用[index]就足够了。
使用简单的玩具示例:
df = pd.DataFrame({'a':[1,5,10,15,20,50,88]})
idx = [2,4,6]
我们可以使用以下任何一种来调用iloc方法:
df.iloc[idx,:]
df.iloc[idx]
获得结果:
a
2 10
4 20
6 88
通话方法之间有什么区别吗?我应该更喜欢使用一个吗?
答案 0 :(得分:1)
主要是他们一样。
假设未遵守规范的轴为:。 (例如。 p.loc [' a']等同于p.loc [' a',:,:])
答案 1 :(得分:1)
在df.iloc[idx,:]
中,冒号在列上切片。在python中使用[:]时,您会切换所有选项。例如:
df = pd.DataFrame({'a':[1,5,10,15,20,50,88], 'b':[1,5,10,15,20,50,88]})
idx = [2,4,6]
df.iloc[idx]
输出:
a b
2 10 10
4 20 20
6 88 88
df.iloc[idx,:1]
输出:
a
2 10
4 20
6 88
在这种情况下,问题是您是否要显式切片所有列。在我的谦虚意见中,我认为它将作为标准格式df.iloc[idx]
显而易见。
http://pandas.pydata.org/pandas-docs/stable/indexing.html#selection-by-position