如何删除 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
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