我希望能够在一个命令中进行行选择以及蒙版和切片。
目前,我使用两个步骤。
df
Out[126]:
A B C D
2018-06-24 -2.198394 0.224622 0.990230 0.390609
2018-06-25 0.644388 -1.196015 1.859241 0.444789
2018-06-26 0.708848 0.780761 1.599977 -0.489875
2018-06-27 -0.465428 -1.540811 -2.384975 0.460398
2018-06-28 -1.061571 1.781373 -1.934853 0.895916
2018-06-29 0.613139 0.446043 -0.061014 -1.182526
2018-06-30 -0.579179 0.630916 0.689561 0.124637
2018-07-01 0.199385 1.230230 -2.075407 1.051498
2018-07-02 0.377676 0.343647 1.226058 0.182071
2018-07-03 0.478328 -0.791613 -2.247531 -1.213415
df03 = df.iloc[0:3]
df03.loc[(df.C > 0) & (df.B > 0), 'A':'C']
Out[128]:
A B C
2018-06-24 -2.198394 0.224622 0.990230
2018-06-26 0.708848 0.780761 1.599977
答案 0 :(得分:1)
不可能,需要为cookbook中的检查索引值创建布尔掩码。
我认为您的解决方案很好,但是如果需要一种解决方案,则需要比较arange
创建的numpy数组的新条件:
df = df.loc[(df.C > 0) & (df.B > 0) & (np.arange(len(df)) < 3), 'A':'C']
详细信息:
print ((np.arange(len(df)) < 3))
[ True True True False False False False False False False]
替代:
print ((df.reset_index().index < 3))
[ True True True False False False False False False False]
df = df.loc[(df.C > 0) & (df.B > 0) & (df.reset_index().index < 3), 'A':'C']