1

MultiIndex列を使用してDataFrameを作成する場合、MultiIndexを使用して単一の列を返すことはできないようです。代わりに、インデックスを持つオブジェクトが返されます。

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(np.random.randn(8, 4), index=dates, columns=_metaInfo)
print df.get('AA').columns
# Index([[m]], dtype=object)

'パラメータ'情報が欠落している場合。これはバグですか、回避策はありますか?

4

1 に答える 1

1

私もこれに苦労しました。反対に、シングルに余分なレベルを追加する (つまり、MultiIndex と一致する) ことも、私を忙しくしています。

私は時々これを使用して、インデックスをそのまま維持します。

print df.T[[('AA', '[m]') == col for col in df.columns]].T

parameter         AA
unit             [m]
2000-01-01  0.972434
2000-01-02 -0.581852
2000-01-03 -0.784172
2000-01-04 -0.843441
2000-01-05 -1.030200
2000-01-06 -0.864225
2000-01-07 -0.530056
2000-01-08 -0.651367

ただし、インデックスがより複雑な場合、これは最も柔軟なソリューションではありません。この例では、うまくいきます。

于 2012-11-27T08:10:53.960 に答える