首页 > 解决方案 > Panda Slicing Notation 有什么更好的

问题描述

基本上我想知道有什么区别:

data.iloc[0:2]

data[0:2]

这两个熊猫数据框都不会。返回相同的信息?我用的那个有关系吗?

标签: pythonpandasnumpy

解决方案


当您的 DataFrame 的索引与位置不同时,它们可能会有所不同。 iloc基于绝对位置,如listPython 中的 a 。 loc基于DataFrame的索引。

例如,如果我们有这个 DataFrame:

df = pd.DataFrame([['a'], ['b'], ['c'], ['d']], index=[1, 2, 3, 4])
df
    0
1   a
2   b
3   c
4   d

iloc会给你基于位置的切片而不是df. 请注意,它不包括最后一个位置。

data.iloc[1:3]
    0
2   b
3   c

相反,loc会给你基于索引的切片。请注意,这包括给定切片的最后一个索引。

data.loc[1:3]
    0
1   a
2   b
3   c

有关更多详细信息,请参阅此页面


推荐阅读