Pandas MultiIndexedであるデータフレームがあります。2番目のレベルには年([2014,2015])が含まれ、3番目のレベルには月番号([1、2、..、12]が含まれます) )。これら2つを-[1/2014、2/2014 ...、6/2015]のような単一のレベルにマージしたいと思います。これはどのように行うことができますか?
私はパンダに不慣れです。たくさん検索しましたが、同様の質問/解決策は見つかりませんでした。
編集: この質問 への回答と一緒にこれを行う必要がないようにする方法を見つけました。そのようにデータフレームを作成する必要がありました。これは、DateTimeによるインデックス作成の方法のようです。
考えます pd.MultiIndex
およびpd.DataFrame
、mux
およびdf
mux = pd.MultiIndex.from_product([list('ab'), [2014, 2015], range(1, 3)])
df = pd.DataFrame(dict(A=1), mux)
print(df)
A
a 2014 1 1
2 1
2015 1 1
2 1
b 2014 1 1
2 1
2015 1 1
2 1
必要なインデックスを表すリストがある場合は、インデックスにリストを再割り当てします。
1レベルも同じにしたい
df.index.get_level_values(0)
新しい2番目のレベルを現在の2番目と3番目のレベルの文字列連結にしたいが、順序を逆にしたい
df.index.map('{0[2]}/{0[1]}'.format)
df.index = [df.index.get_level_values(0), df.index.map('{0[2]}/{0[1]}'.format)]
print(df)
A
a 1/2014 1
2/2014 1
1/2015 1
2/2015 1
b 1/2014 1
2/2014 1
1/2015 1
2/2015 1