2017-11-05 25 views
0

これで大量のデータが何百万行も設定されているため、loc ==でデータをフィルタリングするのに問題があり、そのサイズのために疑問があります。マルチインデックスのpivot_tableを実行し、小さいピボットテーブルをフィルタリングします。複数のインデックスをまとめるgroupby pandas

foo 2011 354 
     2013 659 
     2014 655 
    bar 2012 645 
     2013 665 

私はこれは私がfooとバーの下のスペースを持っている以外フィルタリングすることができます:私はピボットを行うときには、明らかに私はこのような結果を得ますか?もしこれらがナンであれば、私はただナンを埋めることができますが、これはスペースです。私はこれを以前見たことがあると確信していますが、それをどうやって覚えているのでしょうか、fooとbarの下のスペースを埋める方法は?一度これをフルデータフレームにしたら、これをフィルタリングできますか?

編集私の元のコードが実行されない理由はわかりませんが、それはかなり簡単ですか?

df2 = df1.loc[Mort_Data['COD_type'].isin(['T','U','V','W','Y','X'])] 
+0

'df.loc ['foo']'または 'df.loc [( 'foo'、2011)] ' – Wen

+0

私はそれが表示されていないと思います。 – jezrael

+0

データをピボットする前または後に申し訳ありませんか?私はデータをピボットする前にdf.loc [df ['Year']。isin(['2014'])]を試しましたが、それは実行されませんでした。 –

答えて

0

fooの下にあるすべてのスペースは、実際にはfooでbarと同じです。これは、マルチインデックス作成時の視覚化を容易にする機能です。 reset_index()を使用すると、私が疑うものが真であればそれらが表示されます。

その他の問題については、数百万行もそれほど大きくはありませんが、データのサイズのために実際に問題が発生している場合は、バッチで実行できます。これには多くのオプションがあります。