数据分析库 Pandas

对于Pandas的简单认识和基本操作的练习

一 介绍 

Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的库。
Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于 Excel 表格)。
Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。
Pandas 广泛应用在学术、金融、统计学等各个数据分析领域。

主要数据结构

Pandas主要引入了两种新的数据结构:DataFrame 和 Series。
Series:类似于一维数组或列表,是由一组数据以及与之相关的数据标签(索引)构成。Series 可以看作是 DataFrame 中的一列,也可以是单独存在的一维数据结构。
DataFrame:类似于一个二维表格,是 Pandas 中最重要的数据结构。DataFrame 可以看作是由多个 Series 按列排列构成的表格,它既有行索引也有列索引,因此可以方便地进行行列选择、过滤、合并等操作。


二 使用

 Series

索引:每一个Series都有一个索引,可以是整数,字符串,日期等类型,如果没有显示指定索引,Pandas会默认自动创建一个从0开始的整数索引

数据类型:Series可以容纳不同数据类型的元素,包括整数,浮点数,字符串等

# series
#创建
#可以通过pd.Series()构造器创建 也可以传递一个数据数据加一个可选的索引数组import pandas as pd
a = [1,2,3,4]
b = pd.Series(a)time = ['23年','24年','25年','26年']
date = [100,200,300,400]
c = pd.Series(date,time)
print(c)sites = {1:"0012",2:"0013",3:"0014",4:"0015"}
d = pd.Series(sites)
print(d)var = pd.Series(sites,index=[1,3]) # 按照索引去获取数组
print(var)

DataFrame

列和行:DataFrame 由多个列组成,每一列都有一个名称,可以看作一个Series 同时还存在有行索引

二维结构:DataFrame 是一个二维表格 具有行和列 可以视为多个Series对象组成的字典

列的数据类型:不同的列可以包含不同的数据类型 例如整数 浮点型 字符串

 创建方式 

import pandas as pd
# 字典嵌套列表创建
sites = {"web_name":["Google","Baidu","SH"],"age":[1,3,9]}
var = pd.DataFrame(sites)
var
import pandas as pd
# 使用Series创建
data = {"name":pd.Series(["一","二","三"]),"age":pd.Series([21,22,23]),"money":pd.Series([21.2,22.2,23.2])
}
data = pd.DataFrame(data)
data

 文件处理 

import pandas as pd
# csv数据读取
gender = pd.read_csv(r"D:\Study Note\Python_note\Pandas\gender_submission.csv")
gender
import pandas as pd
# JSON数据读取
JSON_Test = pd.read_json(r"D:\Study Note\Python_note\Pandas\test.json")
JSON_Test

 保存为文件

import pandas as pd# 数据
data = {"name":pd.Series(["张三","李四","王五"]),"age":pd.Series([21,22,23]),"money":pd.Series([21.2,22.2,23.2])
}# 将数据转换为DataFrame
data = pd.DataFrame(data)# 将DATa Frame写入Excel文件中
data.to_excel('test.xlsx',index=False)print("Excel文件生成成功")

常用函数

函数用法
pd.merge()实现数据合并
pd.concat()将多个数据框沿着某个轴进行连接
loc[]和iloc[]对数据进行索引和选择
drop()删除某些列或行
isnull()检查失值并使用
fillna()填充缺失值
sort_values()排序
import pandas as pd
df = pd.read_csv(r"D:\Study Note\Python_note\Pandas\test.csv")
# df.head()# 设置编号 方便筛查
df.set_index('PassengerId',inplace=True)# 获取单个值
a = df.loc[900,'Name']# 获取一个Series
b = df.loc[900,['Sex','Age']]# 得到DataFrame
c = df.loc[[896,897,900],["Name","Sex","Age"]]# 行列按区间查询
d = df.loc[896: 905,"Name":"Age"]# 布尔查询
f = df.loc[df["Age"] < 18,:]# 条件查询
g = df.loc[(df["Age"]<=30) & (df["Age"]>=18) & (df["Sex"] == "male"),:]# 新增列查询
h = df.loc[:,"Year"] = df["Age"] +  2025
df.head()
# 统计函数
# 查看单个Series的数据
df["Age"].mean()# 最大值
df["Age"].max()# 最小值
df["Age"].min()# 按值计数
df["Sex"].value_counts()# 去重
df["Age"].unique()# 缺失值处理
stu = pd.read_excel(r"D:\Study Note\Python_note\Pandas\test.xlsx",skiprows = 2)# 检查空值
stu.isnull()
stu["name"].notnull()# 排序
df2 = pd.read_csv(r"D:\Study Note\Python_note\Pandas\gender_submission.csv")
df2.sort_values("Age",ascending=False)

 学习时间 2025年07月12日

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

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

相关文章

qt 中不要让 lambda 槽函数捕获信号源对象的共享指针

错误示例std::shared_ptr<QSerialPort> serial{new QSerialPort{}};QSerialPort::connect(serial.get(),&QSerialPort::readyRead,[serial](){QByteArray receive_data serial->readAll();std::cout.write(receive_data.data(), receive_data.size());});这会直接…

Solidity 合约的编写-完整开发流程:从编译、测试、部署到交互

&#x1f9f1; Solidity 合约开发全流程&#xff08;Foundry 版&#xff09;✅ 适合对象&#xff1a;已经能写合约但不清楚如何测试、部署、交互的开发者✅ 工具链&#xff1a;Foundry&#xff08;forge, anvil, cast&#xff09;&#x1f4cc; 开发流程总览1️⃣ 初始化项目 2…

设计模式 - 面向对象原则:SOLID最佳实践

文章目录深入理解 SOLID&#xff1a;用对原则&#xff0c;别把简单问题搞复杂SOLID 原则概览1. 单一职责原则&#xff08;SRP&#xff09;2. 开闭原则&#xff08;OCP&#xff09;3. 里氏替换原则&#xff08;LSP&#xff09;4. 接口隔离原则&#xff08;ISP&#xff09;5. 依赖…

Vue 3 中父组件内两个子组件相互传参的几种方法

方法一&#xff1a;通过父组件中转&#xff08;Props Emits&#xff09;<!-- ParentComponent.vue --> <template><ChildA :message-from-b"messageFromB" send-to-b"handleSendToB" /><ChildB :message-from-a"messageFromA&q…

三子棋游戏设计与实现(C 语言版)

一、需求分析目标&#xff1a;实现一个简单的人机对战三子棋&#xff0c;支持以下功能&#xff1a;初始化空棋盘&#xff0c;清晰展示落子状态。玩家通过坐标落子&#xff08;X 代表玩家&#xff09;&#xff0c;电脑随机落子&#xff08;O 代表电脑&#xff09;。实时判断胜负…

GD32 CAN1和TIMER0同时开启问题

背景&#xff1a;今天在一个项目调试的时候发现了一些问题&#xff0c;由此贴记录一下问题解决的过程。使用的芯片是GD32F305VE。使用到了CAN1和TIMER0。在使用这连个外设的时候发送了一些问题。单独使用CAN1。功能正常。单独使用TIMER0。配置为输出模式。功能正常。但是当两个…

剑指offer56_数组中唯一只出现一次的数字

数组中唯一只出现一次的数字在一个数组中除了一个数字只出现一次之外&#xff0c;其他数字都出现了三次。 请找出那个只出现一次的数字。 你可以假设满足条件的数字一定存在。 思考题&#xff1a; 如果要求只使用 O(n) 的时间和额外 O(1) 的空间&#xff0c;该怎么做呢&#xf…

从语音识别到智能助手:Voice Agent 的技术进化与交互变革丨Voice Agent 学习笔记

From Research AI&#xff1a; 最近看到 Andrew Ng 的一句话让我印象深刻&#xff1a;“While some things in AI are overhyped, voice applications seem underhyped right now.”&#xff08;尽管 AI 中有些领域被过度炒作&#xff0c;语音应用却似乎被低估了&#xff09;。…

什么是Jaccard 相似度(Jaccard Similarity)

文章目录✅ 定义&#xff1a;&#x1f4cc; 取值范围&#xff1a;&#x1f50d; 举例说明&#xff1a;&#x1f9e0; 应用场景&#xff1a;⚠️ 局限性&#xff1a;&#x1f4a1; 扩展概念&#xff1a;Jaccard 相似度&#xff08;Jaccard Similarity&#xff09; 是一种用于衡量…

ragflow_多模态文档解析与正文提取策略

多模态文档解析与正文提取策略 RAGflow的文档解析系统位于deepdoc/parser/目录下,实现了对多种文档格式的统一解析处理。该系统采用模块化设计,针对不同文档格式提供专门的解析器,并通过视觉识别技术增强解析能力。本文将深入探讨RAGflow的文档解析系统的设计原理、实现细节…

数据结构栈的实现(C语言)

栈的基本概念栈是一种特殊的线性存储结构&#xff0c;是一种操作受到限制的线性表&#xff0c;特殊体现在两个地方&#xff1a;1、元素进栈出栈的操作只能从同一端完成&#xff0c;另一端是封闭的&#xff0c;通常将数据进栈叫做入栈&#xff0c;压栈等&#xff0c;出栈叫做弹栈…

【springboot】IDEA手动创建SpringBoot简单工程(无插件)

大致步骤 创建Maven工程 引入依赖 提供启动类 详细教程 创建Maven工程 修改pom.xml文件 添加父节点 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.3</…

独立开发第二周:构建、执行、规划

一 第二周的独立开发旅程落下帷幕。相较于第一周的适应&#xff0c;本周的核心词是“聚焦”与“执行”。 目标非常明确&#xff1a;在产品开发上取得进展&#xff1b;在个人工作节奏上&#xff0c;将上周初步形成的框架进行实践与固化。 同时&#xff0c;为至关重要的自媒体运营…

在YOLO-World中集成DeformConv、CBAM和Cross-Modal Attention模块的技术报告

在YOLO-World中集成DeformConv、CBAM和Cross-Modal Attention模块的技术报告 1. 引言 1.1 项目背景 目标检测是计算机视觉领域的核心任务之一,而YOLO(You Only Look Once)系列算法因其出色的速度和精度平衡而广受欢迎。YOLO-World是YOLO系列的最新发展,专注于开放词汇目标…

从UI设计到数字孪生实战应用:构建智慧金融的风险评估与预警平台

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩!一、引言&#xff1a;传统金融风控的 “滞后困境” 与数字孪生的破局之道金融风险的隐蔽性、突…

【Linux】权限相关指令

前言&#xff1a; 上两篇文章我们讲到了&#xff0c;关于Linux中的基础指令。 【Linux】初见&#xff0c;基础指令-CSDN博客【Linux】初见&#xff0c;基础指令&#xff08;续&#xff09;-CSDN博客 本文我们来讲Linux中关于权限中的一些指令 shell命令 Linux严格来说是一个操…

前端学习3--position定位(relative+absolute+sticky)

继上一篇&#xff0c;做下拉菜单的时候&#xff0c;涉及到了position&#xff0c;这篇就来学习下~先看下position在下拉菜单中的应用&#xff1a;一、关键代码回顾&#xff1a;/* 下拉菜单容器 */ .dropdown {position: relative; /* ➊ 关键父级 */ }/* 下拉内容&#xff08;默…

APP Inventor使用指南

APP Inventor使用指南一、组件介绍二、逻辑设计设计方法&#xff1a;设计实例&#xff08;参考嘉立创教程&#xff09;点击跳转 &#xff1a; app inventor&#xff08;点不开的话需要&#x1fa84;&#x1fa84;&#x1fa84;&#x1fa84;&#x1fa84;&#xff09; 一、组…

SpringAI实现保存聊天记录到redis中

redis相关准备添加依赖我利用redission来实现<dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.37.0</version> </dependency>添加配置文件spring:redis:database: 5host: 127.0.0.1…

Unity中使用EzySlice实现模型切割与UV控制完全指南

引言 在Unity中实现3D模型的动态切割是一个常见的需求&#xff0c;无论是用于游戏特效、建筑可视化还是医疗模拟。本文将全面介绍如何使用EzySlice插件实现高效的模型切割&#xff0c;并深入探讨如何通过Shader Graph精确控制切割面的UV映射。 第一部分&#xff1a;EzySlice基…