Python的pandas库基础知识(超详细教学)

Python的pandas库基础知识(超详细教学)

目录

一、配置环境

二、序列和数据表

2.1 初始化

2.2  获取数值

2.3 获取索引 

2.4 索引取内容

2.5 索引改变取值

2.6 字典生成序列

2.7 计算取值出现次数

2.8 数据表

 2.9 数据表添加新变量

2.10 获取列名

2.11 根据列名获取数据 

2.12 输出固定行

2.13 输出多行

2.14 输出指定行和列

2.15 输出性别为“男”的行和列

2.16 获取指定行

2.17 获取指定列

2.18 获取指定位置数据

2.19 索引转化 

2.20 判断条件

2.21 重新赋值

三、数据聚合和分组运算

3.1 获取数据集

3.2 读取数据集

3.3 计算每列均值

3.4 计算每列的最小值 

3.5 计算每列的最大值

3.6 计算每列的样本数量

3.7 行计算

3.8 分组计算均值

3.9 分组计算偏度

3.10 聚合运算

3.10.1 分组前

3.10.2 分组后

四、数据可视化

4.1 安装matplotlib库

 4.2 检测matplotlib库

4.3  箱线图

4.4 散点图

4.5 六边形热力图

4.6 折线图


        Pandas是Python中用于数据处理和分析的核心库,提供了快速、灵活且明确的数据结构,主要包括一维的Series和二维的DataFrame。它支持从CSV、Excel、SQL等多种数据源导入数据,并具备数据清洗、合并、重塑、分组统计、时间序列分析等功能。Pandas还易于与其他Python数据分析库集成,是金融、统计、社会科学和工程等领域进行数据分析和处理的强大工具。

一、配置环境

在命令行中运行以下命令:
pip show pandas
 如果为以下内容,则表示未安装pandas库
要安装Pandas库,你可以使用Python的包管理工具pip。在命令行界面(例如终端、命令提示符或Anaconda Prompt,取决于你的操作系统和Python安装方式)中,输入以下命令: 
pip install pandas
安装成功展示图: 

二、序列和数据表

2.1 初始化

         Series可以存储任何数据类型,例如整数、浮点数、字符串、python对象等,每个元素都有一个索引。
import pandas as pd A = pd.Series(data = [1, 2, 3, 4, 5], index = ["A", "B", "C", "D", "E"], name = "A1") print(A) 

2.2  获取数值

import pandas as pd A = pd.Series(data = [1, 2, 3, 4, 5], index = ["A", "B", "C", "D", "E"], name = "A1") print(A) print("数值:", A.values) 

2.3 获取索引 

import pandas as pd A = pd.Series(data = [1, 2, 3, 4, 5], index = ["A", "B", "C", "D", "E"], name = "A1") print(A) print("索引:", A.index) 

2.4 索引取内容

import pandas as pd A = pd.Series(data = [1, 2, 3, 4, 5], index = ["A", "B", "C", "D", "E"], name = "A1") print(A) print(A[["A", "C"]]) 

2.5 索引改变取值

import pandas as pd A = pd.Series(data = [1, 2, 3, 4, 5], index = ["A", "B", "C", "D", "E"], name = "A1") print(A) A[["A", "C"]] = [11, 12] print(A)

2.6 字典生成序列

import pandas as pd A = pd.Series({"A":1, "B":2, "C":3, "D":4}) print(A) 

2.7 计算取值出现次数

import pandas as pd A = pd.Series({"A":1, "B":2, "C":3, "D":4, "E":2, "F":3}) print(A.value_counts()) 

2.8 数据表

import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"]} B = pd.DataFrame(A) print(B) 

 2.9 数据表添加新变量

import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"]} B = pd.DataFrame(A) print(B) B["high"] = ["180", "183", "160", "178", "158"] print(B) 

2.10 获取列名

import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"], "high": ["180", "183", "160", "178", "158"]} B = pd.DataFrame(A) print(B) print("数据表列名:", B.columns) 

2.11 根据列名获取数据 

import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"], "high": ["180", "183", "160", "178", "158"]} B = pd.DataFrame(A) print(B) print(B[["name", "sex"]]) 

2.12 输出固定行

import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"], "high": ["180", "183", "160", "178", "158"]} B = pd.DataFrame(A) print(B.loc[2]) 

2.13 输出多行

import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"], "high": ["180", "183", "160", "178", "158"]} B = pd.DataFrame(A) print(B.loc[2 : 4]) 

2.14 输出指定行和列

import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"], "high": ["180", "183", "160", "178", "158"]} B = pd.DataFrame(A) print(B.loc[2 : 4, ["name", "high"]]) 

2.15 输出性别为“男”的行和列

import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"], "high": ["180", "183", "160", "178", "158"]} B = pd.DataFrame(A) print(B.loc[B.sex == "男", ["name", "sex"]]) 

2.16 获取指定行

import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"], "high": ["180", "183", "160", "178", "158"]} B = pd.DataFrame(A) print(B.iloc[0 : 2]) 

2.17 获取指定列

import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"], "high": ["180", "183", "160", "178", "158"]} B = pd.DataFrame(A) print(B.iloc[ : , 0 : 2]) 

2.18 获取指定位置数据

import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"], "high": ["180", "183", "160", "178", "158"]} B = pd.DataFrame(A) print(B.iloc[0 : 2, 0 : 2]) 

2.19 索引转化 

import numpy as np import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"], "high": ["180", "183", "160", "178", "158"]} B = pd.DataFrame(A) # 转换为列表 print(B.iloc[list(B.sex == "男"), 0 : 3]) # 转换为数组 print(B.iloc[np.array(B.sex == "男"), 0 : 3])

2.20 判断条件

import numpy as np import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"], "high": ["180", "183", "160", "178", "158"]} B = pd.DataFrame(A) print(list(B.age >= "18"))

2.21 重新赋值

import numpy as np import pandas as pd A = {"name": ["小米", "小华", "小魅", "小破", "小领"], "age": ["20", "18", "16", "23", "19"], "sex": ["男", "男", "女", "男", "女"], "high": ["180", "183", "160", "178", "158"]} B = pd.DataFrame(A) B.high = ["179", "186", "168", "183", "160"] print(B)

  

三、数据聚合和分组运算

3.1 获取数据集

iris.csv(iris数据集、鸢尾花数据集)资源-ZEEKLOG文库https://download.ZEEKLOG.net/download/Z0412_J0103/90215255https://download.ZEEKLOG.net/download/Z0412_J0103/90215255

3.2 读取数据集

        鸢尾花数据集(Iris Dataset),又称安德森鸢尾花卉数据集(Anderson’s Iris Data Set),是数据科学与机器学习领域中最著名的经典数据集之一。

        鸢尾花数据集可以通过多种方式获取,如Scikit-learn提供的内置数据集,以及UCI机器学习库等。获取后,可以使用Python等编程语言进行数据加载、预处理和模型训练等操作。

        鸢尾花数据集以其简洁明了的数据结构和广泛的应用场景,成为了机器学习初学者的首选案例。通过学习和实践这一数据集,初学者可以逐步掌握机器学习的基础知识和技能。
import numpy as np import pandas as pd iris = pd.read_csv("D:/iris.csv") print(iris.head()) 

3.3 计算每列均值

import numpy as np import pandas as pd iris = pd.read_csv("D:/iris.csv") print(iris.iloc[ : , 1 : 5].apply(func = np.mean, axis = 0)) 

3.4 计算每列的最小值 

import numpy as np import pandas as pd iris = pd.read_csv("D:/iris.csv") min = iris.iloc[ : , 1 : 5].apply(func = np.min , axis = 0) print(min)

3.5 计算每列的最大值

import numpy as np import pandas as pd iris = pd.read_csv("D:/iris.csv") max = iris.iloc[ : , 1 : 5].apply(func = np.max , axis = 0) print(max)

3.6 计算每列的样本数量

import numpy as np import pandas as pd iris = pd.read_csv("D:/iris.csv") size = iris.iloc[ : , 1 : 5].apply(func = np.size , axis = 0) print(size)

3.7 行计算

只展示前五行 

其中代码的axis=0要改成axis=1
import numpy as np import pandas as pd iris = pd.read_csv("D:/iris.csv") data = iris.iloc[0 : 5, 1 : 5].apply(func = (np.min, np.max, np.mean, np.std, np.var) , axis = 1) print(data)

3.8 分组计算均值

import numpy as np import pandas as pd iris = pd.read_csv("D:/iris.csv") res = iris.drop("Id", axis = 1).groupby(by = "Species").mean() print(res)

3.9 分组计算偏度

import numpy as np import pandas as pd iris = pd.read_csv("D:/iris.csv") res = iris.drop("Id", axis = 1).groupby(by = "Species").skew() print(res)

3.10 聚合运算

3.10.1 分组前

import numpy as np import pandas as pd iris = pd.read_csv("D:/iris.csv") res = iris.drop("Id", axis = 1).agg({"SepalLengthCm" : ["min", "max", "mean"], "SepalWidthCm" : ["min", "max", "mean"], "PetalLengthCm" : ["min", "max", "mean"]}) print(res)

3.10.2 分组后

import numpy as np import pandas as pd iris = pd.read_csv("D:/iris.csv") res = (iris.drop("Id", axis = 1).groupby(by = "SepalLengthCm") .agg({"SepalLengthCm" : ["min", "max", "mean"], "SepalWidthCm" : ["min"], "PetalLengthCm" : ["skew"]})) print(res)

四、数据可视化

   Mtplotlib是Python中一个广泛使用的绘图库,它提供了一个类似于MATLAB的绘图框架。Mtplotlib可以生成高质量的图表,这些图表可以用于数据可视化、科学研究、教育以及出版等领域。 

4.1 安装matplotlib库

pip install matplotlib
安装成功展示图: 

 4.2 检测matplotlib库

pip show matplotlib

4.3  箱线图

import numpy as np import pandas as pd from matplotlib import pyplot as plt iris = pd.read_csv("D:/iris.csv") iris.iloc[ : , 1 : 6].boxplot(column = ["SepalLengthCm", "SepalWidthCm", "PetalLengthCm", "PetalWidthCm"], by = "Species", figsize=(10,10)) plt.show() 

4.4 散点图

import numpy as np import pandas as pd from matplotlib import pyplot as plt iris = pd.read_csv("D:/iris.csv") color = iris.Species.map({"setosa" : "blue", "versicolor" : "green", "virginica" : "red"}) iris.plot(kind = "scatter" , x = "SepalLengthCm", y = "SepalWidthCm", s = 30, c = color, figsize = (10,10)) plt.show()

4.5 六边形热力图

import numpy as np import pandas as pd from matplotlib import pyplot as plt iris = pd.read_csv("D:/iris.csv") iris.plot(kind = "hexbin" , x = "SepalLengthCm", y = "SepalWidthCm", gridsize = 15, figsize = (10,7), sharex = False) plt.show()

4.6 折线图

import numpy as np import pandas as pd from matplotlib import pyplot as plt iris = pd.read_csv("D:/iris.csv") iris.iloc[ : , 0 : 5].plot(kind = "line", x = "Id", figsize = (12, 8)) plt.show()

上一篇文章:Python的Numpy库应用入门(超详细教程)-ZEEKLOG博客https://blog.ZEEKLOG.net/Z0412_J0103/article/details/144840505https://blog.ZEEKLOG.net/Z0412_J0103/article/details/144840505下一篇文章: Python的Matplotlib库应用(超详细教程)-ZEEKLOG博客https://blog.ZEEKLOG.net/Z0412_J0103/article/details/144900714https://blog.ZEEKLOG.net/Z0412_J0103/article/details/144900714

Read more

openGauss 实战手册:gsql 常用命令、认证配置与运维工具全解

openGauss 实战手册:gsql 常用命令、认证配置与运维工具全解

openGauss 是一款高性能开源数据库,掌握其命令行工具是学习与运维的基础。本文从 gsql 常用命令到集群管理与备份恢复,带你快速上手实际操作。 一、gsql 常用命令与操作 1.gsql 简介 gsql 是 openGauss自带的命令行交互式客户端工具。它允许用户连接到数据库,以交互方式执行 SQL 语句,查看查询结果,并执行各类数据库管理任务。 2.gsql 连接数据库命令格式 语法结构 gsql [OPTION]... [DBNAME [USERNAME]] 常用参数 -d, --dbname=DBNAME:指定要连接的数据库名称。 -p, --port=PORT:指定数据库服务监听的TCP端口。 -U, --username=USERNAME:指定连接数据库的用户名。 -W, --password:强制gsql 在连接前提示输入密码。 -h, --host=HOSTNAME:

By Ne0inhk
一款数据库SQL防火墙:可以拦截99.99%,可以阻止恶意SQL

一款数据库SQL防火墙:可以拦截99.99%,可以阻止恶意SQL

文章目录 * 一、SQL注入:那个偷偷溜进房子的"不速之客" * 二、三种模式,给数据库装上"智能门禁系统" * 三、又快又准又简单,这才是理想中的安全防护 * 1. 99.99%的拦截准确率,近乎"零误报" * 2. 性能损耗低于6%,业务无感 * 3. 两步配置,小白也能轻松上手 * 四、从党政到能源,为什么他们都选择了金仓? 在数字化转型的浪潮中,数据已成为企业的核心资产。然而,SQL注入攻击如同潜伏在阴影中的"不速之客",时刻威胁着数据库的安全。即使开发团队严守预编译、输入过滤等防线,遗留代码、第三方组件的漏洞或人为疏忽仍可能给攻击者可乘之机。难道只能被动挨打、疲于补漏吗?金仓数据库(KingbaseES)内置的SQL防火墙,

By Ne0inhk
内网穿透的应用-Plex 打造随身私人影院,告别限制。

内网穿透的应用-Plex 打造随身私人影院,告别限制。

Plex 作为一款集影音整理与播放于一体的工具,核心功能是自动扫描本地存储的电影、剧集、音乐等文件,智能匹配海报、字幕、演职员信息,把杂乱的文件夹梳理成界面精美的私人影音库,适配 Windows、macOS、NAS、树莓派等多平台,尤其适合喜欢收藏高清片源、追求观影体验的家庭用户和影音爱好者,不用手动整理文件、不用忍受视频平台的广告,是管理本地影音资源的高效工具。 使用 Plex 的过程中发现,它对文件命名的兼容性很高,哪怕是俗称、简称都能精准识别,不过首次添加大量影音文件时,匹配元数据需要一定时间,建议在网络稳定时操作,且不同设备同步播放进度需要登录同一账号,这点新手需要留意。 但 Plex 仅在局域网内使用时,局限性很明显:比如出差时想回看家里存的纪录片,只能等回家;给异地的家人分享收藏的老电影,要么靠网盘传输耗时长,要么画质被压缩;甚至在不同房间切换设备,一旦离开局域网范围,就无法继续播放,完全失去了私人影院的灵活性。 而将 Plex 与 内网穿透结合后,这些问题都能迎刃而解:不用折腾路由器端口映射、不用申请公网

By Ne0inhk
MySQL 复制表:结构、数据及索引的完整复制

MySQL 复制表:结构、数据及索引的完整复制

MySQL 复制表:结构、数据及索引的完整复制 * 一、MySQL 复制表概述 * 二、SHOW CREATE TABLE 方法 * 2.1 完整复制流程 * 2.1.1 实际操作步骤 * 2.1.2 示例代码 * 三、CREATE TABLE ... LIKE 方法 * 3.1 快速复制表结构 * 3.2 结合数据复制 * 四、mysqldump 工具方法 * 4.1 使用 mysqldump 导出表 * 4.2 导入到新表 * 五、不同复制方法对比 * 六、高级复制技巧 * 6.

By Ne0inhk