我是这样做的,但我觉得可以更简单一些。你知道吗
df = pd.DataFrame(data={'A':[1,1,1,1], 'B':[-1,-1,-1,-1], 'C':[-1,-1,-1,-1], 'D':[-1,-1,-1,-1], 'E':[1,1,1,1]})
print df
msk= []
for i,k in enumerate(df.columns.tolist()):
if (df.iloc[:,i]<0).all(0):
msk.append(k)
df[msk]
print df[msk]
Tags:
希望这有助于:
使用
np.all
并传递axis=0
:计时
更新
@Aerofoil的答案实际上是这里最慢的,它的伸缩性可能比你的好,但我怀疑它会比numpy方法快
进一步更新
如果我们比较400000行数据框的性能,我们会看到以下结果:
您的方法:
@机翼法:
使用
np.all
的numpy方法:因此,我们看到numpy方法在矢量化时伸缩性更好
相关问题 更多 >
编程相关推荐