Pandas操作Excel

Pandas 是 Python 语言的一个扩展程序库,用于数据分析。
菜鸟教程:https://www.runoob.com/pandas/pandas-tutorial.html

在这里插入图片描述

读取Excel

  • pd.read_excel(path,sheet_name,header)
    • path:excel文件路径
    • sheet_name:读取的sheet,可以为sheet名或数字,默认第1个sheet
    • header:表头行,默认为0,代表第1行为表头

读取并打印excel

import pandas as pd
data = pd.read_excel("data.xlsx")
print(data) 

在这里插入图片描述

获取行索引和列名

  • data.index:显示所有行索引
  • data.columns:显示所有列名
  • data.shape:显示数据的行数和列数。
    • data.shape[0]:行数
    • data.shape[1]:列数
import pandas as pd
data = pd.read_excel("data.xlsx")
print(data.index.values)    # 显示所有行索引:[0 1 2 3 4]
print(len(data.index))      # 显示行数:5
print(data.columns.values)  # 显示所有列名:['班级' '序号' '姓名']
print(len(data.columns))    # 显示列数:3
print(data.shape)			# 显示元组行列数:(5,3)

获取行、列

  • data[column_name]:选择指定的列;
  • data.loc[row_index, column_name]:根据行索引和列名选择,若只有一个参数,代表选择指定的行;
  • data.head(n):显示前 n 行数据;
  • data.tail(n):显示后 n 行数据;
  • data.sample(n):随机选择 n 行数据。
import pandas as pd
data = pd.read_excel("data.xlsx")
"""获取列"""
print(data["姓名"])    # 获取单列,类型为Series
print(data["姓名"].values)    # 输出:['解叮叮' '许世亮' '王者' '蒋建国' '宋艺然']
print(data[["姓名","班级"]])    # 获取多行,类型为DataFrame
print(data[["姓名","班级"]].values) # 二位列表
print(data.head(2))		# 获取前两行
print(data.tail(2))		# 获取后两行
print(data.sample(2))	# 随机选择2行
"""获取行"""
print(data.loc[0])	  # 获取单行,类型为Series
print(data.loc[0].values)

获取单元格

  • data.iloc[row_index, column_index]:根据行列数字索引选择,从行列均从0开始
import pandas as pd
data = pd.read_excel("data.xlsx")
"""以下输出均是:解叮叮"""
print(data.loc[0]["姓名"])	# 先行后列
print(data.loc[0,"姓名"])
print(data["姓名"][0])		# 先列后行
print(data.iloc[0,2])		 # 选择代表第1行,第3列

修改数据

import pandas as pd
data = pd.read_excel("data.xlsx")
"""新增、修改行"""
data["班级"] = [2,3,4,5,6]	# 修改
data["备注"] = "无"		   # 新增,值都为“无”
"""新增、修改列"""
data.loc[1] = [2,1002,"嘻嘻嘻"]	# 修改
data.loc[len(data.index)] = [6,1006,"哈哈哈"]	# 新增
data.loc[len(data.index)] = {"班级":7,"序号":1007,"姓名":"咻咻咻"} # 新增
"""修改单元格的值"""
data.loc[0,"姓名"] = "张三"
data.iloc[1,2] = "李四"

遍历所有值

import pandas as pd
data = pd.read_excel("data.xlsx")
"""先获取二维列表格式的值,然后遍历二维列表"""
for row in data.values:	# 遍历所有行for value in row:	# 遍历行的每列值print(value,end=",")print()
"""根据行索引和列名遍历"""
for row_index in data.index:for column_name in data.columns:print(data.loc[row_index, column_name],end=",")print()
"""根据行列的数字索引遍历"""
for i in range(data.shape[0]):for j in range(data.shape[1]):print(data.iloc[i, j],end=",")print()

在这里插入图片描述

写入Excel

  • data.to_excel(excel_writer,sheet_name,index……)
    • excel_writer:可以是文件路径或者excel对象。
    • sheet_name:工作表名,默认“Sheet1”。添加多个sheet是必须指定,否则会发生覆盖。
    • index:是否显示索引,True代表显示,False代表不显示,默认True。

单个sheet写入

import pandas as pd
data = pd.DataFrame({'One': [1, 2, 3]})
data.to_excel('test.xlsx',index=False)

多个sheet写入同一个Excel

import pandas as pd
data1 = pd.DataFrame({'One': [1, 2, 3]})
data2 = pd.DataFrame({'Two': [4, 5, 6]})
writer = pd.ExcelWriter('test.xlsx')
data1.to_excel(writer, sheet_name='Sheet1', index=False)
data2.to_excel(writer, sheet_name='Sheet2', index=False)
writer.close()

数据计算

  • data.count():计算每列非缺失值的数量。
  • data.mean():计算每列的平均值。
data = pd.read_excel(excel_path)
print(data["班级"].count())
print(data["班级"].mean())
print(data.groupby("班级").agg({'班级': 'count'}))	# 以班级分组,显示各个班级人数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/23750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.netty和protobuf

1.ChannelGroup可以免遍历由netty提供,覆盖remove方法即可触发删除channel\ 2.群聊私聊 13.群聊私聊简单原理图 3.netty心跳检测机制,客户端对服务器有没有读写(读,写空闲) //IdleStateHandler(3,5,7,TimeUnite.SECONDS)是netty提供的检测状态的处理器,也加到pipeline,读,写,…

【新版系统架构补充】-嵌入式软件

嵌入式软件 嵌入式软件是指应用在嵌入式计算机系统当中的各种软件,除了具有通用软件的一般特性,还具有一些与嵌入式系统相关的特点,包括:规模较小、开发难度大、实时性和可靠性要求高、要求固化存储。 嵌入式软件分类&#xff1…

react Ref 的基本使用

类组件中使用ref 在类组件中,你可以使用createRef来创建一个ref,并将它附加到DOM元素或类组件实例上。使用ref允许你在类组件中访问和操作特定的DOM元素或类组件实例。 下面是在类组件中使用ref的步骤: 引入React和createRef: …

浅析 C 语言的共用体、枚举和位域

前言 最近在尝试阅读一些系统库的源码,但是其中存在很多让我感到既熟悉又陌生的语法。经过资料查阅,发现是 C 语言中的共用体和位域。于是,趁着课本还没有扔掉,将一些相关的知识点记录在本文。 文章目录 前言共用体 (union)枚举…

Tomcat 的内存配置

修改 Tomcat 的内存配置,你需要调整 Tomcat 的 Java 虚拟机(JVM)参数。具体来说,你需要修改 catalina.sh(Linux/macOS)或 catalina.bat(Windows)脚本中的 JAVA_OPTS 变量。以下是一般…

【LeetCode 算法】Merge Two Sorted Lists 合并两个有序链表

文章目录 Merge Two Sorted Lists 合并两个有序链表问题描述:分析代码迭代递归 Tag Merge Two Sorted Lists 合并两个有序链表 问题描述: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 两个链表的…

GNN code Tips

1. 重置label取值范围 problem: otherwise occurs IndexError: target out of bounds # reset labels value range, otherwise occurs IndexError: target out of bounds uni_set torch.unique(labels) to_set torch.tensor(list(range(len(uni_set)))) labels_reset label…

网络开发-IO模型

基本概念 I/O即数据的读取&#xff08;接收&#xff09;或写入&#xff08;发送&#xff09;操作 通常用户进程中的一个完整I/O分为两个阶段 用户进程空间<-->内核空间内核空间<-->设备空间&#xff08;磁盘、网卡等&#xff09; I/O分为内存I/O、网络I/O和磁盘…

【编程】典型题目:寻找数组第K大数(四种方法对比)

【编程】典型题目&#xff1a;寻找数组第K大数&#xff08;四种方法对比&#xff09; 文章目录 【编程】典型题目&#xff1a;寻找数组第K大数&#xff08;四种方法对比&#xff09;1. 题目2. 题解2.1 方法一&#xff1a;全局排序&#xff08;粗暴&#xff09;2.2 方法二&#…

2023年第二届网络安全国际会议(CSW 2023)

会议简介 Brief Introduction 2023年第二届网络安全国际会议(CSW 2023) 会议时间&#xff1a;2023年10月13日-15日 召开地点&#xff1a;中国杭州 大会官网&#xff1a;www.cybersecurityworkshop.org 2023年第二届网络安全国际会议(CSW 2023)由杭州电子科技大学&#xff0c;国…

123.买卖股票的最佳时机3

目录 一、题目 二、分析代码 一、题目 123. 买卖股票的最佳时机 III - 力扣&#xff08;LeetCode&#xff09; 二、分析代码 class Solution { public:int maxProfit(vector<int>& prices) {//0表示没有操作//1表示第1次买入&#xff0c;2表示第1次卖出//3表示第2…

用html+javascript打造公文一键排版系统11:改进单一附件说明排版

一、用htmljavascript打造公文一键排版系统10中的一个bug 在 用htmljavascript打造公文一键排版系统10&#xff1a;单一附件说明排版 中&#xff0c;我们对附件说明的排版函数是&#xff1a; function setAtttDescFmt(p) {var t p;var a ;if (-1 ! t.indexOf(:))//是半角冒…

学习源码,模仿编程

一.观察者模式: 1.创建事件 2.发布事件 3.监听事件 4.效果: 二.模板方法模式

FTP使用教程

FTP使用教程 目录 一&#xff0e;FTP简介二&#xff0e;FTP搭建三&#xff0e;FTP使用 一&#xff0e;FTP简介 FTP中文为文件传输协议&#xff0c;简称为文传协议。它也是一个应用程序&#xff0c;不同的操作系统有不同的FTP应用程序&#xff0c;这些应用程序都遵守同一种协议以…

Python 程序设计入门(007)—— 列表的操作(2):列表元素的排序及统计操作

Python 程序设计入门&#xff08;007&#xff09;—— 列表的操作&#xff08;2&#xff09;&#xff1a;列表元素的排序及统计操作 目录 Python 程序设计入门&#xff08;007&#xff09;—— 列表的操作&#xff08;2&#xff09;&#xff1a;列表元素的排序及统计操作一、列…

LeetCode724. 寻找数组的中心下标

题干 给你一个整数数组 nums &#xff0c;请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端&#xff0c;那么左侧数之和视为 0 &#xff0c;因为在下标的左侧不存在元素。…

k8s概念-pv和pvc

回到目录 kubernetes存储卷的分类太丰富了,每种类型都要写相应的接口与参数才行&#xff0c;这就让维护与管理难度加大。 persistenvolume(PV) 是配置好的一段存储(可以是任意类型的存储卷) 也就是说将网络存储共享出来,配置定义成PV。 PersistentVolumeClaim(PVC)是用户pod使…

Python黑魔法揭秘:装饰器、生成器、异步编程、GIL、描述符和元类

Python中的某些特性被看作是“黑魔法”&#xff0c;原因在于它们的强大功能和复杂性。接下来&#xff0c;让我们深入探索这些特性。 装饰器 装饰器是修改函数或类行为的强大工具&#xff0c;它提供了一种可读性强、代码重用的方式来增强或修改函数或类的行为。装饰器就像一个…

用Rust实现23种设计模式之 职责链模式

关注我&#xff0c;学习Rust不迷路&#xff01;&#xff01; 优点 解耦&#xff1a;职责链模式将请求发送者和接收者解耦&#xff0c;使得多个对象都有机会处理请求&#xff0c;而不是将请求的发送者和接收者紧密耦合在一起。灵活性&#xff1a;可以动态地改变或扩展处理请求…

Thunar配置自定义动作

Add “Copy To” and “Move To” custom actions in Thunar file manager | For the record 1.在此打开终端 图标-应用程序&#xff1a;utilities-terminal 命令&#xff1a;exo-open --working-directory %f --launch TerminalEmulator 文件类型&#xff1a;* 目录 2.右键增…