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

Engram 中的多头哈希理解举例

我们以处理句子“DeepSeek improves memory retrieval with Multi-Head Hashing”为例,完整演示多头哈希(Multi-Head Hashing)的具体执行流程。为简化理解,我们设定关键参数:N-gram阶数=2(即提取连续2个Token组成的语义单元)、哈希头数量K=2(并行使用2个独立哈希函数)、嵌入表大小=101(选择质数以优化哈希分布)。 步骤1:上下文压缩(Tokenizer Compression) 首先通过词表规范化合并语义等价Token。 常见误解澄清:词表规范化压缩的是词表的ID空间大小,而非输入Token序列的长度。输入序列长度在此步骤中保持不变。 原始词表中,同一语义的不同形态(大小写、形态变体)被分配了不同的ID,造成嵌入表冗余。规范化的目标是将这些语义等价的Token归并到统一ID: 原始词表条目原始ID压缩后ID处理说明DeepSeek102102保留标准形式improves345345保留标准形式memory789789保留标准形式retrieval210210保留标准形式with

By Ne0inhk
数据结构:手撕堆和哈希表,字符串哈希详解----小白也能懂

数据结构:手撕堆和哈希表,字符串哈希详解----小白也能懂

🎬 博主名称:个人主页 🔥 个人专栏: 《算法通关》,《Java讲解》 ⛺️心简单,世界就简单 序言 其实是想把这篇写到上一篇里面的,但是中途困了,趴桌子上睡着了,真是没招 这篇文章,来手撕 堆和哈希表,这一般面试可能会问到,我们来了解他的思想和思路也是比较舒服的 目录 序言 堆 堆的存储 堆有两个基本操作 1,down( x ) 2 , up( x ) 操作一:插入一个数 操作二:求集合中的最小值 操作三:删除最小值 操作四:删除任意一个元素 操作五:修改任意一个元素 题目模板练习1 题目模板练习二 总结: 哈希表 存储结构:拉链法 存储结构:开放寻址法 处理冲突思路: 查找 删除 总结

By Ne0inhk
小红书笔记详情API接口基础解析:数据结构与调用方式

小红书笔记详情API接口基础解析:数据结构与调用方式

小红书笔记详情 API 接口基础解析:数据结构与调用方式 小红书笔记详情 API 是面向官方合作方 / 授权开发者提供笔记核心数据的标准化接口,主要用于合规场景下的内容展示、数据分析(需授权)等需求。该接口的设计围绕数据标准化、权限管控、内容合规三大核心,其数据结构与调用方式具有鲜明的内容社区属性。 一、接口基础信息 1. 接口访问前提 * 权限限制:小红书笔记详情 API不对外开放,仅对通过企业资质审核的合作方(如品牌服务商、合规内容平台)开放,个人开发者无法申请。 * 调用协议:支持 HTTPS 协议,保障数据传输安全;高并发场景可申请 gRPC 协议支持。 * 请求方式:以 GET 为主(只读查询),部分带用户个性化参数的请求支持 POST。 * 数据格式:默认返回 JSON 格式,支持 Protobuf 二进制格式(

By Ne0inhk
《图论算法入门:掌握DFS和BFS,理解图与树的遍历》

《图论算法入门:掌握DFS和BFS,理解图与树的遍历》

🎬 博主名称:个人主页 🔥 个人专栏: 《算法通关》,《Java讲解》 ⛺️心简单,世界就简单 目录 序言 DFS 全排列问题 剪枝操作---n皇后问题 BFS 树与图的深度优先遍历 树,图的存储 遍历树,图 树与图的宽度优先遍历 序言 到图论这章节了,先讲讲DFS,BFS,然后讲树和图咋存储,还有树和图的DFS以及BFS, DFS dfs是一个执着的人(可爱捏),他一直搜索到叶子节点,然后才会回头去看别的路,然后继续一条路走到头 从数据结构来看,我们的dfs用的是栈 从空间来看,我们dfs空间使用是与高度成正比的O( h ) 我们dfs搜索是一条路走到头,所以我们dfs不具有最短路的性质 我们来看个最经典的题, 全排列问题 我们从0开始出发,然后往下搜,当搜到n的话就说明我们搜完了输出一下就行(用path记录搜索的路径),当搜完之后,我们肯定要恢复原状,所以把st给回复,path不用是因为,下次直接就覆盖了,不用再path[

By Ne0inhk