Python 如何使用Pandas从CSV中获取数字的前5名

Python 如何使用Pandas从CSV中获取数字的前5名,python,pandas,sorting,Python,Pandas,Sorting,我使用下面的python代码读取一个包含50K行的CSV。每行有一个4位代码,例如“1234” import csv import pandas as pd import re df = pd.read_csv('Parkingtickets.csv', sep=';',encoding='ISO-8859-1') df['Parking tickets'] 我想对代码进行排序,并获得同一代码出现次数前5名的计数 codes = df['Parking tickets'] Counter(

我使用下面的python代码读取一个包含50K行的CSV。每行有一个4位代码,例如“1234”

import csv
import pandas as pd
import re

df = pd.read_csv('Parkingtickets.csv', sep=';',encoding='ISO-8859-1')

df['Parking tickets']
我想对代码进行排序,并获得同一代码出现次数前5名的计数

codes = df['Parking tickets']
Counter(codes).most_common(5)

这是我想要的,但它不仅仅计算数字代码,有些可能在同一行中有两个代码。如何使用“re.findall(r'\d{4}')”?我知道我需要使用它,但不知道如何实现它

也许看看pandas.Series.value_counts()。这将返回一个序列,其中包含原始序列中唯一值的计数。下面是一些简单的示例代码:

import pandas as pd
list1 = [1, 1, 1, 2, 2, 3]

df = pd.DataFrame(data={
'number': list1})

df['number'].value_counts()
这是回报

2  3
1  2
3  1
表示数字2出现3次,数字1出现2次,数字3出现1次。你可以一直这样做:

top5 = list(df['number'].value_counts())
top5 = top5[:5]

或字典等。

欢迎来到StackOverflow。请花点时间阅读这篇文章,以及如何提供答案,并相应地修改你的问题。这些关于数据帧的提示可能也很有用。请发布您为数据帧排序所做的尝试?为清楚起见,请参阅本节内容。还添加了python标记以引起注意。显示输入的
.head()
和所需输出的
.head()
,我将帮助您。