python数据分析课程笔记 | 第三章 Pandas数据分析运用(上)

【大学生课程】《Python数据分析》课程大作业要求 《Python数据分析》课程大作业要求 大作业要求 评分标准 一、评分规范基本要求 1、按时上交纸质文档和电子文档… 10分 2、数据分析方法及分析步骤…20分 3、代码…50分 3.1 算法描述正确(10分) 3.2 算法分析(20分) 3.3 代码截图(20分) 4、个人总结…20分 4.1 对数据分析的理解(10分) 4.2 学习数据分析课程的体会(10分) 考核目标 1、掌握Pandas的读写操作 2、正确使用预处理技术过滤数据 3、熟悉Matplotlib库绘制各种图表 4、会基于数据进行独立分析 阅读详情

3.1 pandas基础操作

(1)常用数据结构

在这里插入图片描述
在这里插入图片描述
Series常用属性:

  • values:返回Series对象所有元素
  • index:返回索引
  • dtypes:返回数据类型
  • shape:返回series数据形状
  • ndim:返回对象的维度
  • size:返回对象个数

在这里插入图片描述
DataFrame常用属性:

  • values:返回Series对象所有元素
  • index:返回索引
  • dtypes:返回数据类型
  • shape:返回series数据形状
  • ndim:返回对象的维度
  • size:返回对象个数
  • columns:返回列标签
import numpy as np
import pandas as pd

# 创建Series
series1 = pd.Series([2.8, 3.01, 8.99, 8.59, 5.18], index=['a', 'b', 'c', 'd', 'e'], name='this is a series')
series2 = pd.Series(np.array([2.8, 3.01, 8.99, 8.59, 5.18]), index=['a', 'b', 'c', 'd', 'e'], name='this is a series')

series3 = pd.Series({'北京': 2.8, '上海': 1.8, '深圳': 3.8})
series3.values
series3.index
series3.ndim
series3[0:3]
series3['北京':'深圳']

series4 = pd.Series({'四川': 4.8, '重庆': 5.8})
series3 = series3.append(series4)
series3['北京'] = 2.56

series3.drop('四川', inplace=True)  # 加上inplace=True,就会对原数据进行改变
series3.drop(['上海', '北京'], inplace=True)

# 创建DataFrame(python中的list是python的内置数据类型,list中的数据类不必相同的,而array的中的类型必须全部相同)
list1 = [['张三', 23, '男'], ['李四', 24, '女'], ['王二', 26, '女']]
df1 = pd.DataFrame(list1, columns=['姓名', '年龄', '性别'])

df2 = pd.DataFrame({'姓名': ['张三', '李四', '王二'], '年龄': [23, 24, 26], '性别': ['男', '女', '女']})

array1 = np.array(list1)
df3 = pd.DataFrame(array1, columns=['姓名', '年龄', '性别'], index=['a', 'b', 'c'])

df3.values
df3.shape
df3.dtypes
df3.columns.tolist()
df3.index.tolist()
df3.ndim
df3.size

(2)数据获取与保存

import pandas as pd
import os

# 读取
df1 = pd.read_csv('路径\文件名', encoding='gbk')

os.chdir('路径')
df2 = pd.read_csv('文件名', encoding='gbk', dtype={'info_id': str, 'emp_id': str}, nrows=10, na_values=70)
df2.head()
df2.tail()
df2.dtypes

df3 = pd.read_excel('文件名', encoding='utf-8', sheet_name='名字')

# 保存
df1.to_csv('文件名', index=False)
df3.to_excel('文件名', index=False)

(3)数据筛选

import pandas as pd
import os

os.getcwd()
os.chdir('路径')
order = pd.read_excel('文件名', encoding='utf-8', sheet_name=0, dtype={'detail_id': str})

order.head(5)
order.tail(5)
order.columns
order.dtypes
order.ndim
order.shape
order.size

order[:10]
order.dishes_name
order['dishes_name']
order['dishes_name'][0:50]
order[['dishes_name', 'logicprn_name']][0:50]

# loc和iloc
# loc[A,B],A、B代表行和列的标签
order.loc[2:5, ['dishes_name', 'logicprn_name']]
order.loc[order['order_id'] == 458, ['order_id', 'dishes_name', 'logicprn_name']]
# iloc[A,B],A、B代表行和列的位置
order.iloc[:, 1:4]
order.iloc[3:7, [2, 3]]

(4)条件查询和增删改查

在这里插入图片描述

import pandas as pd
import os

os.getcwd()
os.chdir('路径')
order = pd.read_excel('文件', encoding='utf-8', sheet_name=0, dtype={'detail_id': str})

# 查
# 条件查询
order[order['order_id'] == 458][['order_id', 'dishes_name']]
# 多重条件查询
order[['order_id', 'dishes_name']][(order['order_id'] == 458) & (order['amounts'] > 3)]
order[['order_id', 'dishes_name']][~(order['order_id'] == 458)]
order[['order_id', 'dishes_name', 'amounts']][order['amounts'].between(10, 30, inclusive=True)]
order[['order_id', 'dishes_name']][order['dishes_name'].isin(['内蒙烤羊腿', '大蒜'])]
order[['order_id', 'dishes_name']][order['dishes_name'].str.contains('烤')]

# 增
order['payment'] = order['amounts'] * order['counts']
order['payway'] = '现金支付'

# 删
order.drop('payway', axis=1, inplace=True)
order.drop(['payway', 'payment'], axis=1, inplace=True)
del order['payway']

order.drop(labels=(3, 4), axis=0, inplace=True)

# 改
mid = order['emp_id']
order.drop(['emp_id'], axis=1, inplace=True)
order.insert(0, 'Mid', mid)

order.loc[order['order_id'] == 458, 'order_id'] = 45800
order.rename(columns={'amounts': '金额'}, inplace=True)
order.rename(index={0: '0900'}, inplace=True)

order.describe()
order.describe().loc['count'] == 0

3.2 pandas高级操作

(1)数据库数据的获取和保存

在这里插入图片描述

import pandas as pd
from sqlalchemy import create_engine

# 建立连接
# create_engine('mysql+pymysql://user:passward@IP:3306/test01')
# user(用户名):passward(密码)@IP(IP地址):3306(端口)/test01(数据库名)')
conn = create_engine('mysql+pymysql://root:ly200689081@localhost:3306/test01')
sql = 'select * from meal_order_info'
df1 = pd.read_sql(sql, conn)

def query(table):
    host = 'localhost'
    user = 'root'
    passward = 'ly200689081'
    database = 'test01'
    port = 3306
    conn = create_engine('mysql+pymysql://{}:{}@{}:{}/{}'.format(user, passward, host, port, database))
    sql = 'select * from ' + str(table)
    results = pd.read_sql(sql, conn)
    return results

df2 = query('appendix')

# 保存到数据库
import os

os.chdir('路径')
df = pd.read_csv('文件名')
conn = create_engine('mysql+pymysql://root:ly200689081@localhost:3306/test01')
try:
    df.to_sql('testdf', con=conn, index=False, if_exists='replace')
except:
    print('error')

(2)数据整合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pd

# 左右连接
merge = pd.merge(left=df1, right=df2, how='left', left_on='id', right_on='Id')
merge = pd.merge(left=df1, right=df2, how='right', left_on='id', right_on='Id')
# 全连接
merge = pd.merge(left=df1, right=df2, how='outer', left_on='id', right_on='Id')
# 内连接
merge = pd.merge(left=df1, right=df2, how='inner', left_on='id', right_on='Id')
# 按照索引合并(不常用)
merge = pd.merge(left=df1, right=df2, how='inner', left_index=True, right_index=True)

(3)层次化索引

在这里插入图片描述

import pandas as pd

order = pd.read_excel('路径', header=0, sheet_name=0, encoding='gbk', index_col=[0, 1])
order.loc[2956, 2958]
order.loc[(2956, 2958), :]
order.loc[(2956, [417, 1049]), :]
order.loc[(2956, 2958), ['dishes_id', 'logicprn_name']]
第三章 Python Pandas数据分析运用 Python Pandas数据分析运用三、Python Pandas数据分析运用1. Pandas常用数据结构(1)Series类(2)Series常用属性(3)DataFrame类2. 数据获取和保存3. 数据筛选 三、Python Pandas数据分析运用 1. Pandas常用数据结构 创建一个series对象 series1 = pd.Series([2.8,3.01,8.99,8.59... 阅读详情

相关推荐

python数据分析课程总结

数据分析是利用数学、统计学理论与实践相结合的科学统计分析方法,对Excel数据、数据库中的数据、收集的大量数据、网页抓取的数据进行分析,从中提取有价值的信息并形成结论进行展示的过程。数据分析实际就是通过总结数据的规律来解决业务问题,以帮助在实际工作中管理者做出判断和决策。数据分析包括如下几个主要内容1.现状分析:分析已经发生了什么2.原因分析:分析为什么会出现这种现状3.预测分析:预测未来可能发生什么。

moguangde的博客 1571

数据分析第三章pandas入门(三)

1.算术运算和数据对齐frame1 = DataFrame( np.arange(9).reshape((3,3)), index=['yz', 'nj', 'bj'], columns=list('bcd') ) frame2 = DataFrame( np.arange(12).reshape((4, 3)), index=['sz','yz', 'nj', 'wx'], columns=li...

xiaobaicai4552的博客 392

资源 | Python数据分析课程:从入门到实战

整理 | 阿司匹林出品 | 人工智能头条(AI_Thinker)想要成为一名数据科学家,首先你得学会数据分析,而 Python 就是一个很好的数据分析工具。问题是,如何用...

优快云 人工智能 8354

数据分析-Pandas基础使用及练习

最近在看关于机器学习的相关入门知识,在特征工程中使用了Numpy和Pandas提取样本特征和标签,后来了解到Pandas是一款基于Numpy的高级数据分析库,所以想学习下Pandas数据分析基础内容。

BoringError的博客 1697

Python数据分析课程设计

要求根据所学知识完成以下任务。根据需求分析,可以将该系统设计为“查看指定行数据”、“删除指定列及预处理”、“数据选择及导出”、“文本文件转存Excel文件”、“数据统计并绘图”五大功能模块,以及“功能选择”主菜单辅助模块。④ 为保持程序的健壮性,各个任务执行过程中需要进行必要的判断(如文件是否存在、输入是否合法等)、程序异常控制等。② 各个任务名称自己定义,须由独立的函数实现,且每个任务执行成功与否须给出必要的文字提示。① 各个任务选择用菜单实现(菜单可用字符串输出模拟,或者Tkinter形式实现)。

m0_75259302的博客 1225

《利用Python进行数据分析》阅读笔记

利用Python进行数据分析》这本书是由Wes McKinney编写的,他是Python pandas项目的创始人。这本书详细介绍了如何使用pandas进行数据分析,以及如何利用Python的其他库,如NumPy和IPython,来处理、清洗和规整数据。Series和statsmodels是Python的一个库,用于拟合多种统计模型,进行统计测试和数据探索。scikit-learn是Python的一个库,支持简单和复杂的机器学习算法。

weixin_52209561的博客 1126

python dataframe筛选

在介绍数据帧的数据结构时,引入了标签和位置的概念。同样,您可以使用布尔数组在行维和列维度中进行筛选。注意,上面提到的参数都是单个的,比如给出布尔数组匹配。但是,它不是基于标签,而是基于位置。因为选择了具有偶数索引值的行,所以选择了行。一个位置整数,比如五个位置整数数组,比如。列长度的布尔数组,以及上述四个中的一个。在该操作中,仅选择第三行和第二列。列复合条件过滤器,用于在行维度中使用。运算符全选,在行维度中单独选择第二列。这个布尔数组作用于行维度。标签为:的数据帧的列或行。列,最终得到上图中的结果集。

fmz2222的博客 1518

Python数据分析之Pandas入门(附课程笔记)

讲讲Pandas,由于Pandas的内容也比较多,本文主要还是讲解一些入门的基本知识。本文主要是介绍了pandas的一些入门知识,都是对pandas数据结构的一些操作,后面讲解了使用pandas文件中数据的一些操作(基本上能满足我们的日常工作,如需读取其他文件格式,可以自行google),本文是pandas的一个基础入门总结,后续会整理Pandas的一些进阶的知识。

weixin_65025184的博客 363

Python dataframe 多条件筛选/过滤数据的方法及函数isin,query,contains,loc的使用介绍

1. 背景概述 日常的数据分析中,经常遇到需要根据各种不同的条件从数据集中筛选相应的数据记录,再进行提取、分析、替换、修改等操作。因此,筛选是数据分析中使用频率很高的功能。一般而言,通常是使用for循环在数据中进行筛选,本文总结了在python中常用的并且使用效率比较高的几种数据筛选函数如:isin(), query(), contrains(),以及它们的实践示例。 2. 筛选方法和函数简介 简单的筛选方法: 单一的筛选条件或值 df.loc[df[“column_name”] == value] 复

weixin_45914452的博客 13万+

Python数据分析——pandas

纯个人python的一个小回忆笔记,当时假期花两天学的python,确实时隔几个月快忘光了,为了应付作业才回忆起来,,适用于参考回忆。

m0_73991249的博客 3735

[STM32H750]HAL库下FMC驱动正点原子MCU屏的移植与优化

本文详细介绍了在STM32H750平台上使用HAL库移植与优化正点原子MCU屏幕驱动的完整过程。重点解析了FMC硬件配置、Cache一致性处理、精确延时实现等关键技术难点,提供了实用的移植方案和性能优化技巧,帮助开发者高效解决屏幕显示问题。

rock5的博客 286

python数据分析

numpy包的应用 import numpy as np np.min[1,5,2,3] np.argmax[1,5,2,3] a=np.array([2,3,-5,6]) import pandas as pd s = pd.Series([1,2,5,6],index=[‘a’,‘b’,‘f’,‘g’]) data = pd.DataFrame([[1,2,3],[4,5,6]],columns=[‘a’,‘b’,‘f’]) data=pd.read_excel(‘c:\数据.xlsx’) im

优快云_xinger的博客 704

坐标偏移不一致或瓦块重名的多个OSGB工程的融合

介绍如何使用实景三维小助手OSGBLab对坐标偏移不一致或瓦块重名的多个OSGB工程的融合

OSGBLab的博客 3232

python数据分析课程笔记 | 第三章 Pandas数据分析运用(下)

目录:3.3 分组聚合和透视图(1)数据排序(2)分组聚合(3)透视图和交叉表3.4 Pandas数据预处理(1)Pandas其他函数运用(2)数据清洗(3)数据离散化 3.3 分组聚合和透视图 (1)数据排序 import pandas as pd vgsales = pd.read_csv('vgsales.csv', encoding='utf-8', dtype={'Year': float}) # ascending=True按照升序排序,na_position='last'缺失值排最

SimbaG的博客 419

终端里藏了个AI大神!DeepSeek‑TUI让你的命令行直接起飞

DeepSeek-TUI:终端AI编程神器 DeepSeek-TUI是一款专为开发者设计的终端AI编程工具,基于DeepSeek V4模型,提供100万Token超大上下文支持,适合处理复杂项目。其核心优势包括: 轻量高效:单二进制文件,无需依赖环境,支持SSH远程操作 智能交互:实时流式输出推理过程,支持三档模式(Plan/Agent/YOLO)灵活切换 强大功能:集成文件读写、Git管理、Shell执行等工具,支持一键回滚和持久会话 节省成本:智能压缩与缓存优化,显著降低Token消耗 适用于服务器开发

962

Claude Code 实战指南:从入门到高效编程

本文是一份Claude Code实战指南,旨在帮助开发者从入门到精通这款AI编程助手。文章详细讲解了如何通过清晰的指令公式与Claude Code高效沟通,并展示了如何将其深度集成到日常开发工作流中,例如理解陌生代码、调试和生成测试文档。指南还提供了避坑建议与最佳实践,并通过构建一个天气查询CLI工具的完整案例,演示了如何利用Claude Code加速开发进程,实现从设计到代码的高效人机协作。

weixin_28339967的博客 485

【Python】【课程笔记】金融数据分析(一)

本文是课程《金融数据分析》的学习笔记,分为基础篇、Numpy、Pandas和Matplotlib等,本系列用于对知识点总结和代码练习,Q&A为问题及解决方案,参考书籍为《利用Python进行数据分析》。

空明远 2766

【实战项目开发技术分享】ROS1.0、ROS 2.0和CyberRT开源通信框架对比

随着机器人和自动驾驶技术的飞速发展,开源通信框架在机器人、自动驾驶行业扮演着重要的角色。ROS1.0是一个广泛应用于机器人领域的开源框架,ROS 2.0是其改进版本,而CyberRT是Baidu Apollo自动驾驶平台的通信框架。ROS和ROS 2.0都注重灵活性和共享性,适用于各种机器人应用。CyberRT则专注于实时性和高性能,适用于自动驾驶等对实时性要求较高的场景。选择适合的框架取决于具体应用需求和开发者的偏好。

xiewf的博客 2万+

Python-Pandas学习笔记——基础

Pandas是一个强大的Python数据分析库,提供高效的数据结构和数据操作工具,导入后可通过Series实现灵活的数据处理和分析,是数据科学领域的必备工具。

broken312的博客 2293

逻辑判断1-逻辑基础知识

判断推理学习笔记

小y的学习笔记 2132

解锁RK3588:内核模块签名与安全启动配置全攻略

RK3588作为一款高性能嵌入式SoC芯片,其内核模块签名与安全启动配置是保障系统安全的核心机制。本文详细介绍了RK3588的芯片特性,重点阐述了安全启动的硬件信任链原理和内核模块签名的实现方法。通过具体步骤演示了从密钥生成、模块签名到验证加载的完整流程,并深入解析了安全启动配置的硬件连接、软件工具准备、密钥烧录等关键环节。此外,还提出了防御旁路攻击和动态信任链扩展等高级安全策略,为RK3588在工业控制、智能安防等高安全要求场景中的应用提供了全面的安全解决方案。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 347

【教程】python数据分析pandas快速学习

pandas是一个著名的python数据分析的开源库,他使用方便、应用广泛,与其他数据分析相关的第三方库兼容良好,是目前python数据处理的主流选择。

风舞雪凌月的博客 1676

2026年数学建模国赛B题无线电干扰源的快速自动定位与清除 论文详细解析

数学建模竞赛论文无线电干扰源的快速自动定位与清除2026 年高教社杯全国大学生数学建模竞赛 B 题完整求解论文交会定位、极大极小测点优化、自适应多频道搜索与定向源恢复的统一建模模型、算法、代码、图表与验证一体化交付本文研究圆形目标区域中多个未知无线电干扰源的快速检测、定位与清除问题,建立了由误差楔交会模型、角度观测信息模型、分层勘测模型、鲁棒射线交会模型和定向覆盖反馈模型组成的统一求解框架。模型同时覆盖题目中的四个子问题:多测向射线形成的多边形定位区域及直径、第二个测点的极大极小优选、全向源自动搜索清除策略

YOLO 359

Python—数据分析神器pandas

python—数据分析神器pandas

深圳市多克创新科技有限公司 1878

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Python数据分析之pandas学习!

在pandas中有两类非常重要的数据结构,即序列Series和数据框DataFrame。Series类似于numpy中的一维数组,除了通吃一维数组可用的函数或方法,而且其可通过索引标签的方式获取数据,还具有索引的自动对齐功能;DataFrame类似于numpy中的二维数组,同样可以通用numpy数组的函数和方法,而且还具有其他灵活应用,后续会介绍到。根据性别分组,计算各组别中学生身高和体重的平均值:如果不对原始数据作限制的话,聚合函数会自动选择数值型数据进行聚合计算。

Python_trys的博客 1847

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

python课程教学大纲-Python数据分析课程教学大纲

原标题:Python数据分析课程教学大纲 课程编号:XXXXXXXX课程名称:Python数据分析与实践英文名称:Python Data analysis and Practice课程类型:专业课学时/学分:48/3 (讲课学时:32 上机学时:16)一、课程性质与任务Python是信管、电子商务、计算机科学与技术专业学生进行数据分析所需要掌握基础性语言和分析工具,是未来学生掌握大数据分析技术的学...

weixin_37988176的博客 2541

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: python数据分析课程笔记 | 第二章 Numpy运用(下)
下一篇: python数据分析课程笔记 | 第三章 Pandas数据分析运用(下)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值