JSo*_*ulp 3 python dataframe pandas
所以说我有一个像这样的pandas数据帧:
0 1 2
0 1 2 3
1 4 5 6
2 7 8 9
3 10 11 12
4 13 14 15
5 16 17 18
Run Code Online (Sandbox Code Playgroud)
我想保留每两组的其他组,即最终结果如下所示:
0 1 2
0 1 2 3
1 4 5 6
4 13 14 15
5 16 17 18
Run Code Online (Sandbox Code Playgroud)
我知道如何使用df.iloc [:: 2]获取交替行,但这给了我:
0 1 2
0 1 2 3
2 7 8 9
4 13 14 15
Run Code Online (Sandbox Code Playgroud)
如果有人能指出我在这里正确的方向,不确定是否有可能用iloc这样做,但如果有人能指出我正确的方向,那将是非常感激的
有很多方法可以做到这一点 - 一个是要注意,在4的重复模式中你想要前两个,或者:
In [18]: df.loc[np.arange(len(df)) % 4 < 2]
Out[18]:
0 1 2
0 1 2 3
1 4 5 6
4 13 14 15
5 16 17 18
Run Code Online (Sandbox Code Playgroud)
因为
In [19]: np.arange(len(df))
Out[19]: array([0, 1, 2, 3, 4, 5])
In [20]: np.arange(len(df)) % 4
Out[20]: array([0, 1, 2, 3, 0, 1])
In [21]: np.arange(len(df)) % 4 < 2
Out[21]: array([ True, True, False, False, True, True], dtype=bool)
Run Code Online (Sandbox Code Playgroud)