2017-07-22 3 views
0

データフレームdfdf['country']は、df['sector']df['year']の列を含み、混合intfloatある他の数値データがあります。国とセクターはcategorical、年はdatetime64[ns]です。毎年恒例の周波数のdatetimeIndexとして認識されますが、第3レベルyearを確保するために、このマルチインデックスを作成する必要がありますどのように混合日時とカテゴリ階層インデックス(マルチインデックス)

arrays1 = [np.array(df['country']), np.array(df['sector']), np.array(df['year'])] 
df1 = df.set_index(arrays1) 
df1.index.names = ['country','sector', 'year'] 
df1 = df1.sort_index() 

を次のように

私は、3層の階層を作成していますか?

+0

? – jezrael

答えて

1

あなたが必要なようだ:

df1 = df.set_index(['country','sector','year']).sort_index() 

次にあなたがget_level_valuesによってMultiIndexlevelを確認することができます。あなたには、いくつかのデータサンプルを追加することができ

print (df1.index.get_level_values('year')) 
+0

ありがとうございます - 雄弁な解決策です。 get_level_values()コマンドで現在返されていないfreqの設定はどうでしょうか? –

+0

はい、私はサンプルを作成し、あなたが正しいです、それは周波数を失ったようです。なぜそれが必要なのでしょうか?バグのように見えるので:( – jezrael

+0

私は、statsmodelsパッケージのデータの時系列解析を行っています。それが重要になると思います。 –

関連する問題