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

article/2025/8/17 15:50:24

目录

一、配置环境

二、序列和数据表

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 pdA = pd.Series(data = [1, 2, 3, 4, 5], index = ["A", "B", "C", "D", "E"], name = "A1")
print(A)

2.2  获取数值

import pandas as pdA = 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 pdA = 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 pdA = 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 pdA = 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 pdA = pd.Series({"A":1, "B":2, "C":3, "D":4})
print(A)

2.7 计算取值出现次数

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

2.8 数据表

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

 2.9 数据表添加新变量

import pandas as pdA = {"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 pdA = {"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 pdA = {"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 pdA = {"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 pdA = {"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 pdA = {"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 pdA = {"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 pdA = {"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 pdA = {"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 pdA = {"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 pdA = {"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 pdA = {"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 pdA = {"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数据集、鸢尾花数据集)资源-CSDN文库https://download.csdn.net/download/Z0412_J0103/90215255https://download.csdn.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 pdiris = pd.read_csv("D:/iris.csv")
print(iris.head())

3.3 计算每列均值

import numpy as np
import pandas as pdiris = 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 pdiris = 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 pdiris = 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 pdiris = 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 pdiris = 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 pdiris = 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 pdiris = 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 pdiris = 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 pdiris = 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 pltiris = 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 pltiris = 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 pltiris = 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 pltiris = pd.read_csv("D:/iris.csv")
iris.iloc[ : , 0 : 5].plot(kind = "line", x = "Id", figsize = (12, 8))
plt.show()

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


http://www.hkcw.cn/article/Lunyjjyeth.shtml

相关文章

男子把矿泉水带到高原一觉醒来大变样 当地的水就没事

男子把矿泉水带到高原,一觉醒来大变样,当地的水就没事!矿泉水被带到高原后出现的物理变化主要与高原环境的气压和温度条件有关,具体表现如下:1.瓶体膨胀现象高原地区平均气压仅为平地的60%-70%,密封瓶装水在运输过程中因外部气压骤降,内部气体体积膨胀导致瓶身变形,可能…

年轻人,花1000多亿干这个!押注谷子经济

年轻人,花1000多亿干这个!押注谷子经济。“六一”前夕,义乌国际商贸城一区内,印着动漫主人公的巨幅海报已经换上,最新的盲盒、徽章以及各种周边好物被摆在了最显眼的位置。2000多家玩具批发商户汇聚于此,谷子浓度越来越高。“谷子”由英文“Goods”音译而来,这个词囊括了…

“端午躲好午,不愁没好运”怎么躲午? 五种方法保平安

“端午躲好午,不愁没好运”怎么躲午? 五种方法保平安!艾旗迎百福,蒲剑斩千邪。今年的端午节比往年早一些,大街小巷已经有很多售卖艾蒿的商贩。端午节是中国传统的四大佳节之一,有着悠久的历史和丰富的文化习俗。进入农历五月后,阳光变得炙热,雨水增多,这个时节是各种毒…

基于python合成100X100的透明背景图片和图标

一、实现思路 1. 加载图像 使用 Image.open() 加载图标图像。 Image.new() 创建一个新的透明背景图像。 2. 调整大小 使用 resize() 方法调整图标图像的大小,确保它不会超过背景图像的一半大小。这里使用 Image.Resampling.LANCZOS 作为过滤器&…

新能源电池壳冲压车间看板实施

车间漫游 这个厂区就一个车间,面积还好,但是被机器和仓库区的产品塞得满满当当。我观察车间布局,为了出货方便,仓库区就在大门旁,叉车到门口货车的转运很快速方便。到车间后,对接人还没来,我们…

秋招Day10 - JVM - 内存管理

JVM组织架构主要有三个部分:类加载器、运行时数据区和字节码执行引擎 类加载器:负责从文件系统、网络或其他来源加载class文件,将class文件中的二进制数据加载到内存中运行时数据区:运行时的数据存放的区域,分为方法区…

茅台经销商被罚后起诉市监局续:法院重审一审撤销处罚决定

“贵州茅台经销商被罚后起诉市监局”一案近日有了最新进展。澎湃新闻从当事人及其代理律师处了解到,贵州省都匀市人民法院日前对该案作出重审一审判决,认定案涉处罚决定适用法律错误、程序违法,决定撤销黔南州市场监督管理局此前作出的行政处罚决定。澎湃新闻此前报道,郭亮…

花生壳里塞冰淇淋卖28一个 真果壳制成引争议

花生壳里塞冰淇淋卖28一个 真果壳制成引争议!近日,一位女子发布视频称,在苏州一家餐厅遇到了价格高昂的冰淇淋。她提到,一份装在花生壳里的冰淇淋售价28元,分量却少得惊人。尽管服务员会帮忙切开,仪式感十足,但她认为并不值这个价格。记者随后走访了位于苏州市姑苏区美罗…

严重或可能导致死亡!不要空腹吃荔枝 了解“荔枝病”真相

最近,话题#荔枝病突然成为热门话题。广东一名女子因过量食用荔枝后,次日出现头晕不适、持续性鼻出血等症状,最终被诊断为“荔枝病”。科普博主表示,此病严重时会引发休克甚至死亡。荔枝病也称为低血糖急性脑炎综合征,发病人群以4至11岁的儿童较为多见。一旦发生,会导致人…

工信部曝光:“腾讯支付”有诈!冒名诈骗需警惕

工信部反诈专班近日发布消息称,有用户举报发现了一款名为“腾讯支付”的理财APP。经与腾讯官方核实,这款APP并非大众熟知的“微信支付”。实际上,微信支付仅支持在微信应用内使用,并没有独立的APP。所谓的“腾讯支付”APP冒充腾讯集团名义,恶意使用腾讯名称,虚构腾讯股权…

郑州最长寿奶奶根本闲不住:我115岁,成大人了

5月28日河南新密,“我115岁,成大人了!”郑州最长寿奶奶根本闲不住,推车散步,眼神好,能爬4楼,还爱洗碗。70岁小女儿:每次回家喊一声妈,很幸福。责任编辑:zx0002

男子家暴被捕后与弟弟弟媳造假借条起诉妻子追债 三人因虚假诉讼被判刑

被丈夫殴打导致4根肋骨骨折后,刘颖报了警,并向法院起诉离婚。而丈夫的弟弟也起诉了她——要她偿还三百多万“债务”。几年下来,刘颖和丈夫的“夫妻官司”牵涉了离婚案、故意伤害案、民间借贷案。其后,刘颖的丈夫李某涛,以及他的弟弟、弟媳三人,均被湖南邵阳的一审法院以虚…

HTML 计算网页的PPI

HTML 计算网页的PPI vscode上安装live server插件&#xff0c;可以实时看网页预览 有个疑问&#xff1a; 鸿蒙density是按照类别写死的吗&#xff0c;手机520dpi 折叠屏426dpi 平板360dpi <html lang"en" data - overlayscrollbars - initialize><header&…

Axure RP11安装、激活、汉化

一:注册码 Axure RP11.0.0.4122在2025-5-29日亲测有效: 49bb9513c40444b9bcc3ce49a7a022f9

300斤巨石砸中汽车 司机幸运逃生 地质灾害点雨后落石

300斤巨石砸中汽车 司机幸运逃生 地质灾害点雨后落石!5月28日,贵州毕节市七星关区何官屯镇一条通村公路上发生落石事故。一块约300斤重的巨石砸中一辆过路汽车,导致车辆从路边高坎坠落。司机受轻伤,送医检查后当日返回家中,车损由保险公司处理。落石还击碎了附近民房的玻璃…

高校校长论文抄袭复制比高达90%?校方:属实,免职

近日,“烟台科技学院校长硕士论文涉嫌严重抄袭”一事引发社会广泛关注。5月29日,烟台科技学院就有关情况发布声明:经查核,情况属实。学校董事会研究决定,免去马红坤烟台科技学院校长职务。据媒体此前报道,马红坤2007年在南昌大学法学院获得硕士学位的论文涉嫌严重抄袭,复…

油价将调整!92号汽油或重返“7元时代” 猪价波动影响市场情绪

油价将调整!92号汽油或重返“7元时代” 猪价波动影响市场情绪!五月渐入尾声,生猪市场数据显示,月内猪价呈现波动走低的趋势。5月1日标猪报价为14.82元/公斤,2-3号稳定在14.85元/公斤,但从5月4日起,价格盘整在14.79~14.82元/公斤之间。进入中旬后,猪价降幅逐渐扩大,至5…

广东虎门通报小车坠桥致5死 事故原因正在调查中

广东虎门通报小车坠桥致5死 事故原因正在调查中。近日,广东东莞环莞快速路虎门段发生了一起交通事故,引起了广泛关注。5月19日,有网友反映其侄儿驾车经过该路段时,因四车道突然收窄为三车道导致车辆失控,从高架冲出路面坠落,造成5人伤亡。5月29日晚,广东省东莞市虎门镇发…

韩媒总结航空事故频发原因 安全信任危机

韩媒总结航空事故频发原因 安全信任危机!韩国再爆坠机悲剧,海军巡逻机7分钟内坠毁,4人遇难引发安全信任危机。5月29日下午,韩国庆尚北道浦项市上空传来一声巨响,一架海军P-3C反潜巡逻机在起飞仅7分钟后撞山坠毁,机上4名机组人员全部遇难。这起事故不仅让韩国海军颜面尽失…

气象局回应茂名突发巨响:突然一声巨响,天都被照亮了

气象局回应茂名突发巨响。5月28日晚,多位网友发布视频称当日21点33分左右,广东茂名天空出现疑似“陨石坠落”现象:爆闪强光瞬间点亮夜空,瞬间黑夜宛如白昼。有目击者称不久后听到一声巨响:“突然一声巨响,天都被照亮了。”据@中国气象爱好者:一颗火流星划破粤西的夜空,…