MultiIndex列を使用してDataFrameを作成する場合、のような構文を使用して行を選択/フィルタリングすることはできないようdf[df["AA"]>0.0]
です。例えば:
import pandas as pd
import numpy as np
dates = np.asarray(pd.date_range('1/1/2000', periods=8))
_metaInfo = pd.MultiIndex.from_tuples([('AA', '[m]'), ('BB', '[m]'), ('CC', '[s]'), ('DD', '[s]')], names=['parameter','unit'])
df = pd.DataFrame(randn(8, 4), index=dates, columns=_metaInfo)
print df[df['AA']>0.0]
df ["AA"]> 0.0の結果は、時系列でインデックス付けされたDataFrameです。これはおそらくクラッシュを引き起こします。
行のインデックスとして同じmetaInfoを使用する場合、状況は異なります。
df1 = pandas.DataFrame(np.random.randn(4, 6), index=_metaInfo)
print df1[df1["AA"]>0.0]
生成:
[ 1.13268106 -0.06887761 0.68535054 2.49431163 -0.29349413 0.34772553]
これは、行AAのゼロより大きい要素です。これにより、行AAの値のみが提供され、DataFrameの他の列の値は提供されません。
回避策はありますか?してはいけないことをしようとしていますか?