Python 如何使用pandas返回前10个常用列值?

Python 如何使用pandas返回前10个常用列值?,python,python-3.x,csv,pandas,Python,Python 3.x,Csv,Pandas,我在玩一个著名的犯罪数据集。看起来是这样的: 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:0

我在玩一个著名的犯罪数据集。看起来是这样的:

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
。换句话说,
650
犯罪发生在整个数据集中的
2011-01-01
。但是,我想知道如何返回在
2011-01-01
中发生的
650
犯罪的前10个类别(
Category
列)。从中,我了解了索引选择和切片。尽管如此,我仍然不知道如何返回此类类别。

我认为这正是您想要的,首先使用
df.Dates==“2011-01-01”
构造一个逻辑索引,以筛选日期
2011-01-01
上的行,并在列索引处指定
Category
,以仅选择
Category
列,因此,您可以在
2011-01-01
上获得所有类别。使用
value\u counts()
函数为每个类别创建一个频率表,并按默认情况下升序的频率进行排序,为了获得最频繁的类别,您可以使用列表
[:-1]
反向索引来反向频率计数并使用
[:10]
选择前10个元素,它们将是前十大最常见元素的类别:

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

显示您所做的操作。请使用
print df
或同等工具提供您的原始
DataFrame
,我无法正确加载您的
df
。感谢您的帮助,这已奏效。你能解释一下吗?。