如何选择pandas数据框中的行百分比

Jes*_*sse 6 python dataframe pandas

在 python 中,我有一些结构如下的数据框:

0 0 0 0
1 1 1 1
2 2 2 2
. . . .
n n n n
Run Code Online (Sandbox Code Playgroud)

如何选择中间 33% 的行(由索引决定,而不是值)?

这是我尝试的:

df.iloc[int(len(df)*0.33):int(len(df)*0.66)]
Run Code Online (Sandbox Code Playgroud)

它确实有效,但感觉真的很混乱,更不用说强制的整数了。

我想知道是否有一种更干净的方法来选择数据帧的百分比,因为到目前为止我在文档中找不到任何有用的命令。

el_*_*ldo 0

为此,您需要“玩”数字并定义您想要的索引是什么:

df.iloc[(len(df)// 3) : (len(df) - len(df)// 3), :]
Run Code Online (Sandbox Code Playgroud)

或者

df.iloc[(len(df)// 3) : (len(df)// 3 * 2), :]
Run Code Online (Sandbox Code Playgroud)

在这些示例中,我定义了一个间隔,即(len(df.index)// 3) : (len(df.index)// 3 * 2),它剪切了表的 1/3 和 2/3 之间的数据帧行。