Python Pandas简介及基础教程+实战示例。

文章目录

  • 前言
      • 一、Pandas简介
      • 二、Python Pandas的使用
      • 关于Python技术储备
        • 一、Python所有方向的学习路线
        • 二、Python基础学习视频
        • 三、精品Python学习书籍
        • 四、Python工具包+项目源码合集
        • ①Python工具包
        • ②Python实战案例
        • ③Python小游戏源码
        • 五、面试资料
        • 六、Python兼职渠道


前言

Pandas 是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,今天通过本文给大家介绍Python Pandas的简单使用教程。
在这里插入图片描述


Pandas 是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,今天通过本文给大家介绍Python Pandas的简单使用教程,感兴趣的朋友一起看看吧

一、Pandas简介

1、Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

2、Pandas 是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。

3、数据结构:

Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。

Time- Series:以时间为索引的Series。

DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。

Panel :三维的数组,可以理解为DataFrame的容器。

Pandas 有两种自己独有的基本数据结构。读者应该注意的是,它固然有着两种数据结构,因为它依然是 Python 的一个库,所以,Python 中有的数据类型在这里依然适用,也同样还可以使用类自己定义数据类型。只不过,Pandas 里面又定义了两种数据类型:Series 和 DataFrame,它们让数据操作更简单了。

二、Python Pandas的使用

修改列数据:

df\['price'\]=df\['price'\].str.replace('人均','') # 删除多余文字
df\['price'\]=df\['price'\].str.split("¥").str\[-1\] # 分割文本串
df\['price'\]=df\['price'\].str.replace('-','0') # 替换文本
df\['price'\]=df\['price'\].astype(int) # 文本转整型

把pandas转换int型为str型的方法

切分列数据:

df\['kw'\]=df\['commentlist'\].str.split().str\[0\].str.replace("口味",'')
df\['hj'\]=df\['commentlist'\].str.split().str\[1\].str.replace("环境",'')
df\['fw'\]=df\['commentlist'\].str.split().str\[2\].str.replace("服务",'')

注意:pandas中操作如果不明确指定参数,则不会修改原数据,而是返回一个新对象。

删除列数据:

del df\['commentlist'\]

排序列数据:

df.sort\_values(by=\['kw','price'\],axis=0,ascending=\[False,True\],inplace=True) 

注意:排序前先用astype转换正确的类型,如str、int或float

重新设置索引列标签顺序:

df.columns=\['类型','店铺名称','点评数量','星级','人均消费','店铺地址','口味','环境','服务'\]

打印前几行数据:

print(df.loc\[:,\['店铺名称','口味','人均消费'\]\].head(6))
# 或者 # print(df.iloc\[0:6,\[1,6,4\]\]) # 前6行(整数)
# 但不能是 # print(df.loc\[0:6,\['店铺名称','口味','人均消费'\]\]) # 从索引0到索引6的行(对象)

综合示例:

图例:

结果:

要求:

(1)对该数据中的comment、price进行数据清洗整理,‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(2)将commentlist数据拆分为“口味”、“环境”和“服务”三列后再进行数据清洗整理,‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(3)去除commentlist列数据‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(4)将此数据按“口味”降序、“人均消费”升序进行排序,‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(5)输出排序后前6条数据中的“店铺名称”、“口味”和“人均消费”三列数据。

代码:

import pandas as pd 
df=pd.read\_csv('spdata.csv',encoding='gbk')  #读入文件,编码为gbk # 注意编码,重要#对数据进行清洗
df\['comment'\]=df\['comment'\].str.replace('条点评','')
df\['price'\]=df\['price'\].str.replace('人均','')
df\['price'\]=df\['price'\].str.split("¥").str\[-1\]
df\['price'\]=df\['price'\].str.replace('-','0')
df\['price'\]=df\['price'\].astype(int)
df\['kw'\]=df\['commentlist'\].str.split().str\[0\].str.replace("口味",'')
df\['hj'\]=df\['commentlist'\].str.split().str\[1\].str.replace("环境",'')
df\['fw'\]=df\['commentlist'\].str.split().str\[2\].str.replace("服务",'')
del df\['commentlist'\]#按口味降序,人均消费升序进行排序
df.sort\_values(by=\['kw','price'\],axis=0,ascending=\[False,True\],inplace=True) 
#重新设置列索引标签
df.columns=\['类型','店铺名称','点评数量','星级','人均消费','店铺地址','口味','环境','服务'\]print(df.loc\[:,\['店铺名称','口味','人均消费'\]\].head(6))

方法二:

import pandas as pd
df=pd.read\_csv('spdata.csv',encoding='gbk')df\['comment'\]=df\['comment'\].str.replace('条点评','')
df\['price'\]=df\['price'\].str.replace('人均','').str.replace('¥','').str.replace('-','0').str.replace(' ','').astype(int)
df\[\['kw','hj','fw'\]\]=df\['commentlist'\].str.replace('口味','').str.replace('环境','').str.replace('服务','').str.split(expand=True).astype(float) # expand将普通的列表转为DataFrame对象
del df\['commentlist'\]df.sort\_values(by=\['kw','price'\],axis=0,ascending=\[False,True\],inplace=True) # 注意inplace=True
df.columns=\['类型','店铺名称','点评数量','星级','人均消费','店铺地址','口味','环境','服务'\]print(df\[\['店铺名称','口味','人均消费'\]\].head(6))

注意:df.str.split是列表,加了expand=True之后才是DataFrame对象,或者用.str[x]提取某一列,注意不是df.str.split()[x]而是df.str.split().str[x],前者是对list(二维)操作,后者是对DataFrame操作(取某一列)


关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python基础学习视频

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python工具包+项目源码合集
①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

六、Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

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

相关文章

webpack项目 index.html 根据不同的变量引入不同的js

项目 webpack搭建 问题:在入口文件index.html中根据不同的变量引入不同的js 使用插件HtmlWebpackPlugin HtmlWebpackPlugin 项目里用来生成静态文件的 这个插件每个项目基本都要用到的,只要全局搜一下位置 根据配置文件的指令找到执行的文件&#xff0…

海外应用速度访问慢?试试这个技术解决方案

在数字化转型的时代,企业需要高效、稳定、安全的网络连接来支撑全球化业务的拓展。然而,在进行海外应用访问时,经常会遇到访问速度慢的问题,因为跨国界的网络通信往往存在延迟和带宽限制等问题。在过去,企业通常会使用…

Doris动态分区(十四)

动态分区是在 Doris 0.12 版本中引入的新功能。旨在对表级别的分区实现生命周期管理(TTL),减少用户的使用负担。 目前实现了动态添加分区及动态删除分区的功能。动态分区只支持 Range 分区。 原理 在某些使用场景下,用户会将表…

计算机基础知识——字,字节,进制,short,byte等

目录 进制位,字节,字Byte,ShortByteBuf有符号数和无符号数 进制 HEX,Hexadecimal ,十六进制。 DEC,Decimal ,十进制。 OCT,Octal ,八进制。 BIN,Binary &a…

【Android】声浪 UI 效果并附上详细代码

声浪效果是基于第三方实现的。 https://github.com/xfans/VoiceWaveView 将三方的 Kotlin 代码转 java 使用(按照他的readme 进行依赖,好像少了点东西,至少本项目跑不起来) 声浪效果在android 8 以上都是比较好的,不会…

外卖配送小程序商城的效果如何

线下餐饮店非常多,主要以同城生意为主,在线上电商和外卖平台的冲击下,传统商家仅通过传统方式经营很难宣传拓客及转化等,线上是必要的渠道,但入驻第三方平台又会有各种困扰,抽成/佣金/流量费/激烈竞争等。 …

【云原生-Kurbernetes篇】 玩转K8S不得不会的HELM

Helm 一、Helm1.1 使用背景1.2 Helm简介1.3 Helm的几个概念1.4 helm2 和 helm3 的区别1.5 chart包的关键组成 二、Helm相关命令2.1 应用管理操作2.2 Helm repository仓库管理命令2.2 Helm chart包管理命令2.3 Helm release(实例) 管理命令2.4 Helm私有仓库管理命令 三、部署He…

Linux常用操作 Vim一般使用 SSH介绍 SSH密钥登录

目录 1. 常用命令 2. vim一般使用 3. SSH介绍 4. ssh密钥登录 1. 常用命令 1)# 与 $ 提示的区别 # 表示用户有root权限,一般的以root用户登录提示符为#, $提示符表示用户为普通用户 2)ifconfig 查看ip地址 eno1: 代表由主板…

“图纸保密大作战:上海迅软DSE解决方案守护机械公司核心资料

机械行业是我国重要的工业制造行业之一,相关企业在发展中往往需要用到ERP、PDM、PLM等系统来对产品信息进行管理,其中便涉及到大量文档和图纸等重要数据。然而随着业务的快速发展和数字化转型,机械行业也面临着如数据泄露、外来袭击攻击、内部…

以45°斜抛水平距离最远

已知:斜抛物体的初速度为 v 0 v_0 v0​(与水平方向的夹角为 θ \theta θ),重力加速度为 g g g。 求:抛物轨迹方程? 垂直方向的速度为 v y v 0 sin ⁡ θ − g t v_yv_0 \sin \theta -gt vy​v0​sinθ−…

CNVD-2023-12632:泛微E-cology9 browserjsp SQL注入漏洞复现 [附POC]

文章目录 泛微E-cology9 browserjsp SQL注入漏洞(CNVD-2023-12632)漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 泛微E-cology9 browserjsp SQL注入漏洞(CNVD-2023-12632)漏洞复现 [附POC] 0x…

如何查找批量企业的联系方式?

​我们都知道,企业的联系方式在企业的年报中就能找到,但是年报上的电话真的是你要找的吗? 很多企业年报上留的是第三方代记账公司,或者是其他没用的号码,这对于做B端业务的企业来说是不够精准的。 市面上有很多做企业…

一起学docker系列之六如何搭建私服版本的Docker镜像仓库

目录 前言1 下载并运行私服版本的Docker镜像仓库2 准备上传私服的Docker镜像3 为镜像打上符合私服规范的标签4 修改Docker守护进程的配置文件5 推送镜像到私服版本的Docker镜像仓库6 验证私服的镜像结语 前言 Docker是一种开源的容器技术,可以让开发者和运维人员快…

Android : ListView + BaseAdapter-2简单应用

​​容器与适配器:​​​​​ http://t.csdnimg.cn/ZfAJ7 实体类 News.java package com.example.mylistviewadapter2.entity;public class News {private String title;private String content;private int img;public News(String title, String conte…

金蝶云星空部署包导出文件

文章目录 金蝶云星空部署包导出文件 金蝶云星空部署包导出文件 打开补丁包后,贴入导出文件的文件夹,然后按F2即可导出到目标文件夹。

2023年最佳Aspera替代方案,选择适合的Aspera替代方案

查找当前可用的Aspera替代方案。比较 2023年Aspera替代方案的评级、评论、定价和功能。列出了市场上最好的Aspera替代方案,它们提供与 IBM Aspera 类似的竞争产品。对下面的Aspera替代方案进行排序,以根据需求做出最佳选择。 1、镭速 镭速(私…

java继承和重写(代码演示)

java中的继承和重写 概念 继承 在 Java 中,继承是面向对象编程中的重要概念,它允许一个类(称为子类)继承另一个类(称为父类)的属性和方法。子类可以继承父类的非私有属性和方法,并且可以添加…

每日一题 2304. 网格中的最小路径代价(中等,动态规划)

由于他每一行的每一个值都可以到下一行的所有节点,且路径的代价没有什么相关性,所以只能用 O(mn2) 的动态规划求解 class Solution:def minPathCost(self, grid: List[List[int]], moveCost: List[List[int]]) -> int:m, n len(grid), len(grid[0])…

PC分页操作

page-size 每页显示条目个数 current-page 当前页数 total 数据总数 current-change【currentPage 改变时会触发】 <el-paginationbackgroundlayout"prev, pager, next"align"right"style"padding: 10px":page-size"pageParams.pagesize…

连接k8s和凌鲨

通过连接k8s和凌鲨&#xff0c;可以让研发过程中的重用操作更加方便。 更新容器镜像调整部署规模查看日志运行命令 架构 所有操作通过k8s proxy连接&#xff0c;通过设置namespace label赋予访问权限。只有赋予特定label的namespace才能被访问。 使用步骤 部署k8s proxy 你…