当前位置: 首页 > news >正文

数据分析之Python对数据分组排序

原数据样例:

名字       技能性别
张三打篮球、打羽毛球、打乒乓球、打游戏

最后的结果:

名字       技能性别排序
张三打篮球1
张三打羽毛球2
张三打乒乓球3
张三打游戏4

1、读取csv文件数据

input_csv_file = 'data.csv'
output_csv_file = 'sorted_data_with_qualifications.csv'# 读取CSV文件并处理数据
with open(input_csv_file, newline='', encoding='utf-8') as csvfile:reader = csv.reader(csvfile)header = next(reader)  # 跳过表头

2、对数据中的某一个字段进行分组排序

原数据中第二列中是按照、分隔的。

sorted_data = []for row in reader:person = row[0]qualifications = row[1].split('、')  # 按顿号分割资质能力sorted_qualifications = sorted(qualifications)  # 对资质能力进行排序for idx, qualification in enumerate(sorted_qualifications,start=1):sorted_data.append([person, qualification, idx, row[2]])  # 添加序号和组别

3、结果保存到csv文件中

# 将处理后的数据写入新的CSV文件
with open(output_csv_file, 'w', newline='', encoding='utf-8') as csvfile:writer = csv.writer(csvfile)writer.writerow(['','',''])  # 写入新表头for row in sorted_data:writer.writerow(row)  # 写入每行数据

完整代码

import csv# 假设CSV文件名为"data.csv",我们将结果保存到"sorted_data_with_qualifications.csv"
input_csv_file = 'data.csv'
output_csv_file = 'sorted_data_with_qualifications.csv'# 读取CSV文件并处理数据
with open(input_csv_file, newline='', encoding='utf-8') as csvfile:reader = csv.reader(csvfile)header = next(reader)  # 跳过表头sorted_data = []for row in reader:person = row[0]qualifications = row[1].split('、')  # 按顿号分割资质能力sorted_qualifications = sorted(qualifications)  # 对资质能力进行排序for idx, qualification in enumerate(sorted_qualifications,start=1):sorted_data.append([person,row[1], qualification, idx, row[2]])  # 添加序号和组别# 将处理后的数据写入新的CSV文件
with open(output_csv_file, 'w', newline='', encoding='utf-8') as csvfile:writer = csv.writer(csvfile)writer.writerow(['','',''])  # 写入新表头for row in sorted_data:writer.writerow(row)  # 写入每行数据print(f"Sorted data with qualifications has been written to {output_csv_file}")

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • TESSY创建单元测试或集成测试工程
  • 基于NNG的六种通信模式
  • 【运维类】信息化项目运维方案(word)
  • day44——C++对C的扩充
  • Spring(面试篇)
  • Linux:SQLite 数据库
  • #QT 笔记一
  • Linux实操笔记1 向服务器出发:连接和登录
  • 大模型LLM的Token相关问题:模型不同,token计算不同,gpt对token的计算,我们如何选择token及token评估模型
  • APP自动化测试思路整理,跟着步骤快速撸码...
  • 建筑企业数字信息化转型的建议
  • 第八周:机器学习
  • ArcGIS中怎么批量计算多个点到线最近距离,以及这些点到线的纬度差?
  • 大模型企业应用落地系列六》基于大模型的对话式推荐系统》推荐引擎层
  • 最大子段和
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • css系列之关于字体的事
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • hadoop集群管理系统搭建规划说明
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • LeetCode18.四数之和 JavaScript
  • Python - 闭包Closure
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • spring security oauth2 password授权模式
  • Terraform入门 - 1. 安装Terraform
  • 闭包--闭包之tab栏切换(四)
  • 力扣(LeetCode)357
  • 两列自适应布局方案整理
  • 前端工程化(Gulp、Webpack)-webpack
  • 前端面试总结(at, md)
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 入口文件开始,分析Vue源码实现
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (HAL库版)freeRTOS移植STMF103
  • (多级缓存)缓存同步
  • (分布式缓存)Redis持久化
  • (十三)MipMap
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • ***详解账号泄露:全球约1亿用户已泄露
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 指南:抽象化实现的基类
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • /bin/rm: 参数列表过长"的解决办法
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [AI Embedchain] 开始使用 - 全栈
  • [Android] Binder 里的 Service 和 Interface 分别是什么
  • [AutoSar]BSW_Com02 PDU详解
  • [Bada开发]初步入口函数介绍
  • [C#]winform部署yolov9的onnx模型
  • [C#数据加密]——MD5、SHA、AES、RSA
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体