如何删除 pandas 数据框中的每 0.2 行?

How to delete every 0.2-th row in a pandas dataframe?

df_o = pd.DataFrame(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o'])

我想连续删除 4 行,但始终保留上面数据框中的第五行。最后的结果应该是:

df_o = pd.DataFrame(['e', 'j', 'o'])

我的想法df_o = df_o.drop(df_o.iloc[::0.2].index)行不通。如果 n 是整数,它适用于删除每第 n 行,但不适用于我的情况。

试试这个:

df_o.groupby(np.arange(len(df_o.index))//5).last()

输出:

   0
0  e
1  j
2  o

您可以使用 loc:

import numpy as np
out = df_o.loc[np.arange(1, len(df_o)+1)%5==0, 0].tolist()

输出:

['e', 'j', 'o']

保持简单:切片!

df_o.iloc[4::5]

概括:

N = 5
df_o.iloc[N-1::N]

输出:

    0
4   e
9   j
14  o