df [:]和df [::]之间的主要区别是什么?您能不能给我一个有关此的示例示例。我无法理解。
答案 0 :(得分:0)
假设您是在谈论python lists
而不是pandas
数据帧:
考虑列表l
:
In [301]: l = range(20,30)
In [302]: l
Out[302]: [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
因此,如果您执行以下操作:
In [303]: l[3:6]
Out[303]: [23, 24, 25]
这意味着您要从l
中将元素列表从index = 3提取到index = 6(不包括6)。因此,它返回了23
,它是l [3],24
,它是l [4]和25
,它是l [5]。
注意:未返回26
(l [6]),因为6
中未包含l[3:6]
因此,l [:]-将返回所有元素,因为未指定范围。
In [305]: l[:]
Out[305]: [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
用于扩展切片:
l [1:6:2] -意味着,您希望元素从 index = 1到index = 6,步长为2 。 Step = 2表示,每个索引增加2
So, you should get below elements:
l[1],
l[1 + 2](because the step we defined is 2),
l[1 + 2 + 2]( keep adding `2` to the previous index )
现在,此处的上一个索引为5
,而我们给出的限制为6
,其中不包括6
。因此,如上所述,我们仅获得3个元素。检查以下内容:
In [307]: l[1:6:2]
Out[307]: [21, 23, 25]
因此, l [::] 也将返回整个列表,因为我们尚未在此处指定任何范围。
In [309]: l[::]
Out[309]: [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
您需要在python中练习对字符串进行切片,以了解更多信息。
让我知道这是否有帮助。
答案 1 :(得分:0)
没有区别。
sequence[start:end:step]
sequence[start:end]
':'和'::'代表序列片段。如果省略了开始,结束和/或步骤,则使用默认值:开始的默认值为0,结束的默认值为len(sequence),步骤的默认值为1。
因此,如果df = [1,2,3,4,5,6,7,8]
那么
[df[::]==df[:], df[:] == df[0: len(df): 1], df[::] == df[0: len(df): 1]]
Outputs: [True, True, True]