python - df[:] 和 df[::] 之间的主要区别是什么?蟒蛇3
问题描述
df[:] 和 df[::] 之间的主要区别是什么,你能否给我一个关于这个的示例。我无法理解。
解决方案
假设您正在谈论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 中对字符串进行切片才能掌握它。
让我知道这是否有帮助。
推荐阅读
- excel - 循环列并插入具有相对引用但每次插入公式时都设为绝对/固定的公式
- firebase - 带有多个应用程序的 Firebase 项目通知
- html - 当我试图悬停列表时下拉菜单消失
- javascript - 如何使用 jest 在 catch 块中的 if 语句中测试函数?
- c# - .net core 3 wpf/winforms(非 MSIX)的安装程序?
- python - 检查一列是否包含来自其他列的值并填充第三列(真或假)
- php - PHP 从多个 HTML 复选框更新 SQL
- c++ - 将检测到的 2D 地图调整为参考 2D 地图
- angularjs - 日期选择器在 angularjs ng-template 脚本中不起作用
- javascript - 比较两个嵌套对象数组