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

Python 将 CSV 分割成多个文件

文章目录

    • 使用 Pandas 在 Python 中创建 CSV 文件
    • 在 Python 中将 CSV 文件拆分为多个文件
      • 根据行拆分 CSV 文件
      • 根据列拆分 CSV 文件
    • 总结


在本文中,我们将学习如何在 Python 中将一个 CSV 文件拆分为多个文件。 我们将使用 Pandas 创建一个 CSV 文件并将其拆分为多个其他文件。


使用 Pandas 在 Python 中创建 CSV 文件

要使用 Pandas 在 Python 中创建 CSV,必须首先通过命令行界面 (CLI) 安装 Pandas。

pip install pandas

此命令将下载 Pandas 并将其安装到您的本地计算机中。 使用 import 关键字,您可以轻松地将其导入到您当前的 Python 程序中。

让我们验证 Pandas 是否已安装。

代码示例:

import pandas as pd
print("The Version of Pandas is: ", pd.__version__)

输出:

The Version of Pandas is: 1.3.5

现在,让我们创建一个 CSV 文件。

代码示例:

import pandas as pd# create a data set
data_dict = {'Roll no':    [1, 2, 3, 4, 5, 6, 7, 8],'Gender': ["Male", "Female", "Female", "Male","Male", "Female", "Male", "Female"],'CGPA':       [3.5, 3.3, 2.7, 3.8, 2.4, 2.1, 2.9, 3.9],'English':     [76, 77, 85, 91, 49, 86, 66, 98],'Mathematics': [78, 87, 54, 65, 90, 59, 63, 89],'Programming': [99, 45, 68, 85, 60, 39, 55, 88]}# create a data frame
data = pd.DataFrame(data_dict)# convert the data frame into a csv file
data.to_csv("studesnts.csv")# Print the output
print(data)

输出:

   Roll no  Gender  CGPA  English  Mathematics  Programming
0        1    Male   3.5       76           78           99
1        2  Female   3.3       77           87           45
2        3  Female   2.7       85           54           68
3        4    Male   3.8       91           65           85
4        5    Male   2.4       49           90           60
5        6  Female   2.1       86           59           39
6        7    Male   2.9       66           63           55
7        8  Female   3.9       98           89           88

在 Python 中将 CSV 文件拆分为多个文件

我们已经成功创建了一个 CSV 文件。 让我们将其拆分为多个文件,但可以使用不同的矩阵在列或行的基础上拆分 CSV。

根据行拆分 CSV 文件

让我们在 Python 中基于行拆分 CSV 文件。

代码示例:

import pandas as pd# read DataFrame
data = pd.read_csv("students.csv")# number of csv files along with the row
k = 2
size = 4for i in range(k):df = data[size*i:size*(i+1)]df.to_csv(f'students{i+1}.csv', index=False)file1 = pd.read_csv("students1.csv")
print(file1)
print("\n")
file2 = pd.read_csv("students2.csv")
print(file2)

输出:

      Roll no  Gender  CGPA  English  Mathematics  Programming
0        1    Male     3.5       76           78           99
1        2    Female   3.3       77           87           45
2        3    Female   2.7       85           54           68
3        4    Male     3.8       91           65           85Roll no  Gender  CGPA  English  Mathematics  Programming
4        5   Male     2.4       49           90           60
5        6   Female   2.1       86           59           39
6        7   Male     2.9       66           63           55
7        8   Female   3.9       98           89           88

上面的代码将 students.csv 文件拆分为两个多文件,student1.csv 和 student2.csv。 文件按行分隔; 第 0 到 3 行存储在 student.csv 中,第 4 到 7 行存储在 student2.csv 文件中。

根据列拆分 CSV 文件

借助 groupby() 函数,我们可以根据列矩阵拆分任何 CSV 文件。 groupby() 函数属于 Pandas 库,使用分组数据。

在这种情况下,我们根据性别对学生数据进行分组。

代码示例:

import pandas as pd# read DataFrame
data = pd.read_csv("students.csv")for (gender), group in data.groupby(['Gender']):group.to_csv(f'{gender} students.csv', index=False)print(pd.read_csv("Male students.csv"))
print("\n")
print(pd.read_csv("Female students.csv"))

输出:

       Roll no  Gender  CGPA  English  Mathematics  Programming
0        1      Male   3.5       76           78           99
1        4      Male   3.8       91           65           85
2        5      Male   2.4       49           90           60
3        7      Male   2.9       66           63           55Roll no  Gender  CGPA  English  Mathematics  Programming
0        2      Female   3.3       77           87           45
1        3      Female   2.7       85           54           68
2        6      Female   2.1       86           59           39
3        8      Female   3.9       98           89           88

总结

拆分数据是一种有用的数据分析技术,有助于理解和有效地排序数据。

在本文中,我们讨论了如何使用 Pandas 库创建 CSV 文件。 此外,我们还讨论了两种常见的数据拆分技术,行式数据拆分和列式数据拆分。

相关文章:

Python 将 CSV 分割成多个文件

文章目录 使用 Pandas 在 Python 中创建 CSV 文件在 Python 中将 CSV 文件拆分为多个文件根据行拆分 CSV 文件根据列拆分 CSV 文件 总结 在本文中,我们将学习如何在 Python 中将一个 CSV 文件拆分为多个文件。 我们将使用 Pandas 创建一个 CSV 文件并将其拆分为多个…...

S32K144开发板

目录 一.S32K144开发板概述 二.产品技术和功能规格 三.开发环境 1.S32K144的开发环境主流是这么三种: 2.开发板Demo工程 四.S32K144开发板实物图 五、汽车大灯硬件架构 一.S32K144开发板概述 S32K14…...

三波混频下的相位失配原理

原理推导 在四波混频情况下,实现零相位失配是一件很困难的事情。因为在四波混频中,相位调制和增益都依赖于相同的参数,即克尔非线性 γ \gamma γ。这个问题可以用嵌入在传输线上的辅助共振元件的复杂色散工程来部分解决。 但是在三波混频中…...

软考A计划-试题模拟含答案解析-卷一

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…...

Ubuntu下编译运行MicroPython Unix版本

文章目录 github拉取源码更新模块编译运行 github拉取源码 到Github(https://github.com/micropython/micropython)上下载源码 终端输入,如果提示识别不到gh命令,就sudo apt-get install gc安装一下。 再根据提示在终端里登录自己的github账号。 再次…...

实现用QCustomPlot封装的插件,放到绘图软件中可以点击和移动

首先,我们需要在绘图软件中创建一个插件,并将QCustomPlot控件添加到插件中。QCustomPlot是一个功能强大的绘图控件,可以轻松创建各种类型的图表,包括折线图、散点图、柱状图等等。 接下来,我们需要为QCustomPlot控件添加鼠标事件处理函数,以实现点击和移动的功能。QCust…...

【源码解析】Nacos配置热更新的实现原理

使用入门 使用RefreshScopeValue,实现动态刷新 RestController RefreshScope public class TestController {Value("${cls.name}")private String clsName;}使用ConfigurationProperties,通过Autowired注入使用 Data ConfigurationProperti…...

界面组件DevExpress ASP.NET Core v22.2 - UI组件升级

DevExpress ASP.NET Core Controls使用强大的混合方法,结合现代企业Web开发工具所期望的所有功能。该套件通过ASP.NET Razor标记和服务器端ASP.NET Core Web API的生产力和简便性,提供客户端JavaScript的性能和灵活性。ThemeBuilder工具和集成的Material…...

阿里系文生图(PAI+通义)

PAI-Diffusion模型来了!阿里云机器学习团队带您徜徉中文艺术海洋 - 知乎作者:汪诚愚、段忠杰、朱祥茹、黄俊导读近年来,随着海量多模态数据在互联网的爆炸性增长和训练深度学习大模型的算力大幅提升,AI生成内容(AI Gen…...

Netty概述及Hello word入门

目录 概述 Netty是什么 Netty的地位 Netty的优势 HelloWord入门程序 目标 pom依赖 服务器端 客户端 运行结果 入门把握理解 概述 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable hi…...

汇编寄存器之内存访问

1.内存中字的存储: 在CPU中用一个16位寄存器来存储一个字, 高8位存高字节,低8位存低字节 如AX寄存器存在一个字,那么AH存高字节,AL存低字节 在内存中存储字时是用两个连续的字节来存储字的, 这个字的低字节存在低单元,高字节存在高单元. 如下表示: 内存单元编号 单元中…...

C++进阶 —— lambda表达式(C++11新特性)

目录 一,模板函数sort 二,lambda表达式 一,模板函数sort 在C98中,如对一个数据集合中的元素进行排序,可使用模板函数sort,如元素为自定义类型,需定义排序时的比较规则;随着C的发展…...

数据结构04:串的存储结构与KMP算法

前言 参考用书:王道考研《2024年 数据结构考研复习指导》 参考用书配套视频:4.1_1_串的定义和基本操作_哔哩哔哩_bilibili 特别感谢: Google Bard老师[解释KMP,修改BUG]、Chat GPT老师[修改BUG]、BING老师[封面图]~ 当我请求BI…...

零基础快速搭建私人影音媒体平台

目录 1. 前言 2. Jellyfin服务网站搭建 2.1. Jellyfin下载和安装 2.2. Jellyfin网页测试 3.本地网页发布 3.1 cpolar的安装和注册 3.2 Cpolar云端设置 3.3 Cpolar本地设置 4.公网访问测试 5. 结语 转载自cpolar极点云的文章:零基础搭建私人影音媒体平台【…...

C++map和set

目录: 什么是关联式容器?键值对树形结构的关联式容器 set的概念multiset的使用pair和make_pair map的概念用“[]”实现统计水果的次数 multimap的使用 什么是关联式容器? 在初阶阶段,我们已经接触过STL中的部分容器,比…...

python接口测试之测试报告

在本文章中,主要使用jenkins和编写的自动化测试代码,来生成漂亮的测试报告,关于什么是CI这些我就不详细的介绍了,这里我们主要是实战为主。 首先搭建java的环境,这个这里不做介绍。搭建好java的环境后,在h…...

HGFormer:用于领域广义语义分割的层级式分组Transformer

文章目录 HGFormer: Hierarchical Grouping Transformer for Domain Generalized Semantic Segmentation摘要本文方法实验结果 HGFormer: Hierarchical Grouping Transformer for Domain Generalized Semantic Segmentation 摘要 目前的语义分割模型在独立同分布条件下取得了…...

async函数用法

目录 1.概念 2.本质 3.语法 4.特点 5.async基本使用 6.async里的await普通函数返回值 7.async里的await Promise函数成功返回值 8.async里的await Promise函数失败返回值 9.解决async里的await Promise函数失败后不执行下面内容 1.概念 真正意义上解决异步回调的问题&am…...

简谈软件版本周期 | Alpha、Beta、RC、Stable版本之间的区别

目录 💌 引言 ⭕ 软件版本周期 🛠️ 软件开发期 ⚖️ 软件完成期 💰 商业软件版本 💌 引言 定义好版本号,对于产品的版本发布与持续更新很重要;但是对于版本怎么定义,规则如何确定&#x…...

VS2022发布独立部署的.net程序

.net core支持依赖框架部署和独立部署两种方式,之前学习时是在VSCode中使用dotnet命令发布的。但是在VS2022中却不知道该如何设置。以获取PDF文件使用字体的项目为例,VS2022中默认编译的是依赖框架部署方式(编译的结果如下图所示)…...

VMware Unlocker:跨平台部署macOS虚拟机的创新方法 - 开发者实战指南

VMware Unlocker:跨平台部署macOS虚拟机的创新方法 - 开发者实战指南 【免费下载链接】unlocker 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 一、价值定位:突破虚拟化技术壁垒 在x86架构硬件上运行macOS系统长期面临兼容性限制&…...

EfficientDet的‘复合缩放’到底强在哪?对比YOLOv5、RetinaNet的模型扩展策略

EfficientDet复合缩放策略的工程实践解析:从理论优势到部署优化 1. 目标检测模型扩展的技术演进脉络 计算机视觉领域对高效目标检测的需求从未如此迫切。随着应用场景从云端服务器向边缘设备、移动终端和嵌入式系统的扩展,算法工程师们面临着一个核心矛…...

Go语言中的Kubernetes部署实战

Go语言中的Kubernetes部署实战 Kubernetes作为容器编排的事实标准,已经成为现代云原生应用部署的基石。本文将深入介绍如何将Go语言应用部署到Kubernetes集群,从基础概念到生产实践,帮助你掌握容器编排的核心技能。 Kubernetes核心概念 Pod&a…...

4步攻克企业级Web表单开发:Dify工作流可视化实战指南

4步攻克企业级Web表单开发:Dify工作流可视化实战指南 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-Dify-W…...

STM32CubeIDE实战:HAL库串口中断接收的5个常见坑点及解决方案

STM32CubeIDE实战:HAL库串口中断接收的5个常见坑点及解决方案 在工业传感器数据采集、设备间通信等场景中,稳定可靠的串口通信往往是嵌入式开发的关键环节。许多开发者在使用STM32CubeIDE配合HAL库实现串口中断接收时,虽然能够快速搭建基础功…...

bge-large-zh-v1.5在RAG中的应用:提升问答系统准确率

bge-large-zh-v1.5在RAG中的应用:提升问答系统准确率 1. RAG系统与Embedding模型的关系 1.1 什么是RAG系统 RAG(Retrieval-Augmented Generation)系统是现代问答系统的核心技术架构,它通过两个关键步骤回答用户问题&#xff1a…...

GIS空间分析:从“裁剪”到“掩膜”,如何精准提取目标区域数据?

1. 为什么需要精准提取目标区域数据? 想象一下你手里有一张全国地图,但只需要研究某个城市的数据。这时候就需要像"剪刀"和"遮罩"这样的工具来帮我们精准提取目标区域。在GIS领域,这就是**裁剪(Clip)和掩膜(Mask)**两大核…...

用Python+NumPy可视化理解:为什么平行四边形的面积等于矩阵行列式?

用PythonNumPy可视化理解:为什么平行四边形的面积等于矩阵行列式? 线性代数中那些看似抽象的公式,往往藏着令人惊叹的几何直觉。今天我们就用Python代码,让矩阵行列式与平行四边形面积的关系"活"过来。当你看到图形随着…...

汽车电子 - AutoSAR CAN通信栈:从硬件对象到软件缓冲的实战解析

1. AutoSAR CAN通信栈的核心概念解析 第一次接触AutoSAR CAN通信栈时,我被各种专业术语搞得晕头转向。经过几个项目的实战,终于摸清了其中的门道。CAN通信栈就像快递公司的物流系统,硬件是运输车辆,软件是调度中心,而报…...

Z-Image-Turbo-辉夜巫女材质与光影专题:金属、玻璃、织物等不同质感的极致渲染

Z-Image-Turbo-辉夜巫女材质与光影专题:金属、玻璃、织物等不同质感的极致渲染 你有没有想过,为什么有些AI生成的图片看起来“假假的”,一眼就能认出来?很多时候,问题就出在“质感”上。金属不像金属,玻璃…...