pandas-collections

文章展示了如何使用Python的pandas库和collections库对含有ID和姓名的CSV文件进行处理,统计每个姓名出现的次数,并按次数降序排列。主要涉及的数据处理步骤包括读取CSV数据、使用Counter计算频次以及sorted函数进行排序。
摘要由CSDN通过智能技术生成

问题:一个文件里面第一列是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并输出结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值