【机器学习笔记】初识pandas | 第四天
文章目录
一、今日完成的任务
- 初识pandas库与缺失数据的补全
- 可迭代对象
- 打开数据(csv文件、excel文件)
- 查看数据(尺寸信息、查看列名等方法)
- 查看缺失值神器——isnull( )函数
今日学习用时2h每日源码在gitee仓库:https://gitee.com/yhc_2023/learning-python今日提到的示例代码,在仓库“day4.ipynb”中;相关数据集在仓库“data.csv“和”data.xlsx“中
二、学到的东西
1. 什么是pandas库和csv文件
(1)Pandas是 Python 中一个强大的数据分析库,特别适合处理表格状数据(像 Excel 那样的行列结构)。
它的名字来自 “Panel Data”(面板数据)
学习机器学习绕不开它的!它是数据科学 / AI 项目的基础工具包之一!
(2)csv文件CSV(Comma-Separated Values) 是一种常见的数据表格存储格式,每行代表一行数据,每个字段用逗号分隔。
它就像一个“纯文本的 Excel 表格”,轻便又通用,非常适合用来交换数据
比如内容长这样:

2. 数据的读取
——用pandas库的 read_csv( )
例子:
import pandas as pd
data = pd.read_csv(r'data.csv')
注意加一个“r”是为了,避免地址中出现“\n”这样的转义字符被读取成换行
我们可以查看一下上面这个被读取出来的“data”到底是啥类型
type(data) #查看类型
返回结果:
DataFrame是pandas库里核心的数据类型之一——它代表一个完整的表格。
另外一个是Series,表示一列数据(有索引)
例子:
① DataFrame
data = {
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 35]
}
df = pd.DataFrame(data)
print(df)
输出结果:
② Series
import pandas as pd
s = pd.Series([10, 20, 30])
print(s)
输出结果:
3.pandas的小魔法——isnull( )函数
isnull() 是 Pandas 中用来判断某个元素是否为“缺失值”的函数。缺失值通常表现为 NaN(Not a Number)。
ps:在机器学习中,我们拿到数据文件之后一般都需要数据清洗,补充缺失值,防止后面扫描数据文件的时候碰到缺失值会出各种各样的问题
isnull( )返回一个和原表结构一样的布尔值表格:
- 如果是缺失值 → 返回 True
- 否则 → 返回 False
例子:
data.isnull() #查看缺失值
输出结果(只截了部分,右边太长截不开):
4.查看前十行——head(10)
data.head(10)
输出结果(只截了部分):
5.读取excel文件
ps!!:pandas读取excel需要安装openpyxl库。
每个人环境不一样,我用的anaconda prompt,直接在自己创建的内核里pip install openpyxlexcel文件在我的gitee库里
data = pd.read_excel('data.xlsx')
返回结果(部分的截图):
6.DataFrame有关的属性和方法
(1)data.info() —— 快速查看数据结构
data.info() # 列名、非空值、数据类型
输出结果:
其中给出的信息:
① 总行数:7500代表一共有7500个样本
② Dtype : 每列的数据类型
③ memory:内存占用
④ Non-Null Count :非空值数量
(2)data.shape —— 行数和列数
data.shape # (行数, 列数) data的属性
输出结果:
(3)data.columns —— 查看所有列名
data.columns # 所有列名
输出结果:
🐱如果你想把列名变成列表:
list(data.columns)
输出结果:
(4)查看某一列的数据类型
data["Annual Income"].dtype # Annual Income是data.csv里的一个列名
输出结果:
(5)data.describe() —— 快速统计数值列
data.describe() # 数值列的基本统计量
输出结果(只截取部分列,右边太长了不放了):
其中:
① count :非空值数量
② mean : 平均值
③ count 非空值数量
④ mean :平均值
⑤ std :标准差(衡量数据波动范围)
⑥ min: 最小值
⑦ 25% :下四分位数(Q1)
⑧ 50% :中位数(Q2)
⑨ 75% :上四分位数(Q3)
⑩ max :最大值
Q1Q2Q3和标准差后面补充里有介绍是什么
(6)每列缺失值计数
data.isnull().sum() # sum方法可以求每一列的和
输出结果:
三、明日学习计划
- 缺失值的补充: 众数、中位数填补空值
- 利用循环补全所有列的空值
- 怎么画出箱型图(boxplot)把 Q1~Q3 和标准差一起可视化
- 样本标准差和总体标准差
- 离散特征的独热编码
四、补充
1. enumerate( )函数
正式定义:enumerate 是 Python 的一个内置函数,常用于,在遍历序列时同时获得索引和元素值.注意:
① 可以输出两个数,数据下标和数据本身
其中,enumerate遍历的数据必须是可迭代对象,比如列表、元组、字符串
② 此函数常用在for 循环当中
③ 例子:
seq = ['I','love','cats']
for i,elem in enumerate(seq):
print i,elem
输出结果:
2.什么是可迭代对象,什么是迭代器
(1)可迭代对象就是:能被一个一个取出来的对象。
比如:list, str, tuple, set, dict ,range . 都可以用for循环一个一个地遍历他们
🐱如果想要判断一个对象是不是可迭代,用 iter( )
例子:
iter("abc") #✔ !返回一个迭代器
iter("123") #❌!报错,int 不iterable
(2) 迭代器就是:一个“可以记住你上次取到哪里的”对象。
——它可以被next( )一次次地取出内容,知道”下一个“在哪。
例子:
it = iter([10,20,30])
print(next(it)) #10
print(next(it)) #20
print(next(it)) #30
print(next(it)) #报错:stopIteration, 就是说明到底了
3.非数值数据也能用 describe( )查看列的汇总统计
给describe加一个参数就行:include='all'
例子:
df = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Alice', 'Charlie', None]
})
print(df.describe(include='all'))
输出结果:
Name
count 4
unique 3
top Alice
freq 2
其中:
① count : 非空数量
② unique :不同值的数量
③ top : 最常见的值
④ freq :这个值出现了几次
4.Q1 / Q2 / Q3 是什么
——它们是 四分位数(quartiles),把数据分成四个部分:

例如:
70, 78, 85, 88, 90, 92, 95
- Q1:第一个 25% 的“临界值” → 78
- Q2:中位数(50%)→ 88
- Q3:75% 的位置 → 92
5.标准差
🐱标准差表示数据的“波动程度”或“离平均值有多远”。
- 标准差小 → 数据集中(差不多)
- 标准差大 → 数据分散(差异大)
标准差的计算公式:

pandas里默认使用”样本标准差“(除以 n-1)
^_^ 感谢你看到这里,学习辛苦啦!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)