我需要删除pandas中数据帧的前三行.
我知道df.ix[:-1]会删除最后一行,但我无法弄清楚如何删除前n行.
免责声明:我不是问是否在上限stop的争论slice()以及range()为异或如何使用这些功能.
对函数range和slice函数的调用以及切片表示法[start:stop]都是指整数集.
range([start], stop[, step])
slice([start], stop[, step])
Run Code Online (Sandbox Code Playgroud)
在所有这些中,stop排除整数.
我想知道为什么语言是这样设计的.
是它使stop当等于在表示整数集合元素的数量start等于0或省略?
它有:
for i in range(start, stop):
Run Code Online (Sandbox Code Playgroud)
看起来像下面的C代码?
for (i = start ; i < stop; i++) {
Run Code Online (Sandbox Code Playgroud) 我目前正在向一些相当年轻的学生教授一些python编程。我希望他们学习的一件事是如何编写for循环。
到目前为止,我向学生展示的方式是这样的:
for i in range(1,11):
print(i)
Run Code Online (Sandbox Code Playgroud)
这给出了一个i从1到10 的循环。
我的问题是,对于学生来说,range(1,11)当他们希望循环上升到10时,他们需要写11作为第二个参数,这对学生来说似乎很奇怪。学生们发现这令人困惑。
在C / C ++和相关语言中,这样的循环可以这样写:
for(int i = 1; i <= 10; i++)
{ /* do something */ }
Run Code Online (Sandbox Code Playgroud)
在我看来,表达循环的C ++方法更直观,因为在那种情况下,我可以显式编写1和10,这是我希望循环变量采用的第一个和最后一个值。
当在python中使用for循环时,我最终告诉学生,诸如“我们只想接受要在循环数达到10时编写11的代码,这有点烦人,但您只需要学习范围功能以这种方式起作用”。我对此不满意;我希望他们了解编程很有趣,而且恐怕这种事情会使它变得不那么有趣。
由于python通常被描述为强调可读性的语言,因此我怀疑有一种更好的方式来表达for循环,这种方式不会给我的学生造成混乱。
有没有更好和/或更少混淆的方法来用python语言表达这种for循环?
我想在python中迭代一个闭合范围的整数[a,b],即.从a到b迭代,包括a和b.
我知道以下方法:
for i in range(a, b+1):
do_something(i)
Run Code Online (Sandbox Code Playgroud)
为了反向迭代(即按b,b-1,b-2,...,a的顺序),我执行以下操作:
for i in range(b, a-1, -1):
do_something(i)
Run Code Online (Sandbox Code Playgroud)
我不喜欢这个加法(在示例中为b + 1)和减法(在示例中为a-1)以达到范围的闭合端.我发现它的可读性低于c/c ++/Java对应物(<=在循环中的使用).
你有没有python中的东西可以用于在封闭范围之间迭代而无需人工干预边界?