2016-07-11 2 views
1

私はよく知られている犯罪データセットで遊んでいます。それは次のようになります。パンダでトップ10の頻繁な列の値を返すには?

Dates,Category,Descript,DayOfWeek,PdDistrict,Resolution,Address,X,Y,Time 
2015-05-13,VANDALISM,"MALICIOUS MISCHIEF, VANDALISM OF VEHICLES",Wednesday,TENDERLOIN,NONE,TURK ST/JONES ST,-122.41241426358101,37.7830037964534,22:30:00 
2015-05-13,VANDALISM,"MALICIOUS MISCHIEF, VANDALISM",Wednesday,NORTHERN,NONE,1500 Block of FILLMORE ST,-122.432743822617,37.7838424505847,20:45:00 
2015-05-13,VANDALISM,"MALICIOUS MISCHIEF, VANDALISM",Wednesday,NORTHERN,NONE,1100 Block of FILLMORE ST,-122.431979576386,37.7800478529923,17:07:00 
2015-05-13,VANDALISM,"MALICIOUS MISCHIEF, VANDALISM OF VEHICLES",Wednesday,TENDERLOIN,NONE,LEAVENWORTH ST/EDDY ST,-122.414242955907,37.783724025447796,17:00:00 
2015-05-13,VANDALISM,"MALICIOUS MISCHIEF, VANDALISM OF VEHICLES",Wednesday,CENTRAL,NONE,CALIFORNIA ST/STOCKTON ST,-122.40753977435699,37.79224917725779,16:45:00 
2015-05-13,VANDALISM,"MALICIOUS MISCHIEF, VANDALISM",Wednesday,BAYVIEW,NONE,100 Block of KISKA RD,-122.375989158092,37.7301576924252,16:00:00 
2015-05-13,VANDALISM,"MALICIOUS MISCHIEF, VANDALISM OF VEHICLES",Wednesday,NORTHERN,"ARREST, BOOKED",300 Block of MCALLISTER ST,-122.417777932619,37.7803089893403,14:30:00 
2015-05-13,NON-CRIMINAL,LOST PROPERTY,Wednesday,TENDERLOIN,NONE,300 Block of OFARRELL ST,-122.41050925879499,37.786043222299206,21:00:00 
2015-05-13,LARCENY/THEFT,GRAND THEFT FROM LOCKED AUTO,Wednesday,NORTHERN,NONE,2000 Block of BUSH ST,-122.43101755702699,37.7873880712241,21:00:00 
..... 
2015-05-13,LARCENY/THEFT,GRAND THEFT FROM LOCKED AUTO,Wednesday,INGLESIDE,NONE,500 Block of COLLEGE AV,-122.42365634294501,37.7325564882065,21:00:00 
2015-05-13,LARCENY/THEFT,ATTEMPTED THEFT FROM LOCKED VEHICLE,Wednesday,TARAVAL,NONE,19TH AV/SANTIAGO 

私は2011-01-01 650を取得Dates列の頻度数を取得する場合。換言すれば、650犯罪がデータセット全体で2011-01-01に発生しました。しかし、650犯罪の上位10カテゴリ(Category列)を返す方法を知りたいのですが、2011-01-01に犯罪がありました。 documentationから私はインデックスの選択とスライスについて読んだ。それでも、私はまだそのようなカテゴリを返す方法を理解していません。

+0

あなたが行ったことを示してください。 – Merlin

+2

生の 'DataFrame'に' print df'か同等のものを指定してください。 'df'を正しく読み込めません。 – MaThMaX

答えて

1

私は、このようにあなたが2011-01-01上のすべてのカテゴリを取得するには、まず日付2011-01-01上の行をフィルタのみCategory列を選択する列インデックスでCategoryを指定するdf.Dates == "2011-01-01"と、論理インデックスを構築し、これは何をしたいんだと思います。 value_counts()関数を使用して、各カテゴリの頻度表を作成し、頻繁にカテゴリを取得するために、デフォルトでは昇順に頻度で並べ替えます。[::-1]逆インデックスを使用して頻度カウントを逆転させて使用することができます。[:10]最も頻繁に上位10のカテゴリになる最初の10個の要素を選択します。

df.loc[df.Dates == "2011-01-01", "Category"].value_counts().sort_values()[::-1][:10] 
+0

助けてくれてありがとう、これはうまくいった。いくつか説明をしていただけますか? –

関連する問題