问题:一个文件里面第一列是ID,第二列是姓名,请统计每个姓名出现的次数并按照次数倒排
解答:可以使用Python中的pandas库和collections库来对此数据进行处理。
以下是一个示例代码:
import pandas as pd
from collections import Counter
# 读取数据到DataFrame
df = pd.read_csv('data.csv', header=None, names=['id', 'name'])
# 计算每个姓名出现的次数
name_count = Counter(df['name'])
# 将结果按照次数倒排
result = sorted(name_count.items(), key=lambda x: x[1], reverse=True)
# 输出结果
for name, count in result:
print(f'{name}: {count}')
解释一下代码:
首先,使用pandas的read_csv()函数将数据读取到DataFrame中,其中header=None表示没有标题行,names=['id', 'name']指定了列名。
然后,使用collections的Counter类计算每个姓名出现的次数。Counter类接受一个列表作为输入,并返回一个字典,其中键是列表中的元素,值是该元素在列表中出现的次数。
最后,使用内置的sorted()函数按照次数进行反向排序,将结果存储在result变量中。result是一个元组列表,每个元组包含姓名和出现次数。使用一个简单的循环遍历result并输出结果。