2016-05-31 4 views
1

私はデータフレームのリストを持っており、それぞれにマルチインデックスがあります。 1つの列はvarNameで、もう1つは 'round'です。パンダのデータフレームマルチインデックスの値を変更する

varName列の値は数値です。私はラベルに番号のマッピングである別のデータフレームを持っています。私はvarName列でmap()を使用したいが、インデックスの一部であるため、varName列はありません。

varname列をコピーしようとしましたが、インデックスには含まれていませんでしたが、これらのものは動作していないようです。

+0

[ハウツー-埋め合わせ再現-パンダ-例](http://stackoverflow.com/questions/20109391/how- – MaxU

+0

実際、この特定のケースに対する正解は、「その列がインデックスになる前にデータにマッピングを行う」ことが判明しました。すべてのケースでうまくいくわけではありませんが、この1つでは... –

答えて

1

varNameMultiIndexレベルの一つのnameある場合は、次のことができるようにする必要がありますcolumnvarNameを変換しmap()を使用する

df.reset_index(level='varName') 

varNamenameでない場合は、level=0(または1)を引き続き使用することができます。

0

多分あなたのような何かを行うことができます。これはレベル= 1を想定している

df.reset_index(level=1).merge(df2) 

を2つのDFSの間にあなたの共通の列(例えば「VARNAME」)です。あなたは同様に、ラベル名のためにset_indexよりも、あなたができることを願う場合:

df.reset_index(level=1).merge(df2).set_index(['labels'],append=True) 
関連する問題