相关疑难解决方法(0)

删除pandas中数据帧的前三行

我需要删除pandas中数据帧的前三行.

我知道df.ix[:-1]会删除最后一行,但我无法弄清楚如何删除前n行.

python pandas

140
推荐指数
7
解决办法
19万
查看次数

为什么切片和范围上限是独占的?

免责声明:我不是问是否在上限stop的争论slice()以及range()为异或如何使用这些功能.

对函数rangeslice函数的调用以及切片表示法[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 language-design slice

33
推荐指数
5
解决办法
1万
查看次数

如何使for循环在python中更易于理解?

我目前正在向一些相当年轻的学生教授一些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 loops

17
推荐指数
4
解决办法
931
查看次数

迭代在python中的闭合范围[a,b]中

我想在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中的东西可以用于在封闭范围之间迭代而无需人工干预边界?

python iterator loops range xrange

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×4

loops ×2

iterator ×1

language-design ×1

pandas ×1

range ×1

slice ×1

xrange ×1