次のような DataFrame があります。
A B C D
2000-01-03 -0.59885 0.18141 -0.68828 0.77572
2000-01-04 0.83935 0.15993 0.95911 -1.12959
2000-01-05 2.80215 -0.10858 -1.62114 -0.20170
2000-01-06 0.71670 -0.26707 1.36029 1.74254
最初の行の値に基づいて列をフィルター処理したいと思います。たとえば、最初の値が >0 の列のみを取得したいとします。そして、私が期待する結果は次のとおりです。
B D
2000-01-03 0.18141 0.77572
2000-01-04 0.15993 -1.12959
2000-01-05 -0.10858 -0.20170
2000-01-06 -0.26707 1.74254
更新 ジェフの提案のおかげで、私はこのコードを書きました:
cols = []
firstRow = df.ix[0,:]
for i in range(len(firstRow)):
if firstRow[i]>0:
cols.append(i)
return df.ix[:, list(cols)].values.copy()
これを行うよりエレガントな方法はありますか?