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

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.lryc.cn/news/104956.html

相关文章:

  • leetcode 712. Minimum ASCII Delete Sum for Two Strings(字符串删除字母的ASCII码之和)
  • Springboot -- 按照模板生成docx、pdf文件,docx转pdf格式
  • UE5.1.1 创建C++项目失败
  • windows进行端口映射
  • Python 异常处理
  • C++ 类的静态成员
  • 360T7路由器进行WiFi无线中继教程
  • 主成分分析
  • 笙默考试管理系统-MyExamTest(26)
  • 重新理解 RocketMQ Commit Log 存储协议
  • ES6基础知识十:你是怎么理解ES6中 Decorator 的?使用场景?
  • 接口/Web自动化测试如何做?框架如何搭建封装?
  • Linux怎么从网络上下载文件
  • Flutter携带JSON参数post请求
  • 【vue】vue-image-lazy图片懒加载使用与介绍【超详细+npm包源代码】
  • MFC第二十四天 使用GDI对象画笔和画刷来开发控件(分页控件选择态的算法分析、使用CToolTipCtrl开发动静态提示)
  • 【NLP-新工具】语音转文本与OpenAI的用途
  • try-catch-finally的字节码原理
  • 基于双层优化的微电网系统规划设计方法(Matlab代码实现)
  • 【Nginx13】Nginx学习:HTTP核心模块(十)Types、AIO及其它配置
  • 2023年华数杯数学建模C题思路分析
  • 安卓手机变身Linux服务器
  • 【Ansible】Ansible自动化运维工具之playbook剧本
  • Yolov8目标检测
  • Jmeter用于接口测试中,关联如何实现
  • 线程状态
  • HTML一些基础知识
  • git 命令总结
  • 【Django】如何优化数据库访问
  • 常压室温超导材料:揭开物理学的新篇章