🐸 青蛙编程网
首页 / Python / Pandas / 1. Series 与 DataFrame

Series 与 DataFrame

这是什么:Pandas = Python 数据分析的头号库;Series 是一列数据,DataFrame 是一张表,本章先认这两块基石。

为什么用:学完 Python 基础,你已经会用列表和字典装数据了。可真要分析几百行的表格,列表和字典就力不从心,得有件趁手的兵器。

如何用:本章先用 pip install pandas 装好环境,再看看 Series 和 DataFrame 到底长什么样、各自能干嘛。

安装 pandas

打开命令行,输入:

pip install pandas

装完新建一个 demo.py,写入:

import pandas as pd

print(pd.__version__)

运行后看到版本号(比如 3.0.6),就说明装好了。

习惯约定:pandas 一律缩写成 pd,全世界的教程都这么写,别创新。

版本说明:写作时最新版是 pandas 3.0.6,本教程基于 3.0。网上老教程多基于 2.x,部分默认行为(如字符串类型、副本规则)在 3.0 有变,遇到对不上时以本教程和官方文档为准。

Series:带标签的一列

Series 就是一列数据,而且每行自带编号(标签)。

import pandas as pd

s = pd.Series([95, 88, 76])
print(s)
0    95
1    88
2    76
dtype: int64

左边 0 1 2 是 pandas 自动加的索引,右边是你的数据。想自定义标签也行:pd.Series([95, 88, 76], index=["语文", "数学", "英语"])。

DataFrame:一张表

一列不够用?把几列拼起来就是 DataFrame——一张带行号和列名的表,感觉就像 Excel 里的工作表。

最常用的创建方式:用一个字典,键当列名,值当整列数据:

import pandas as pd

data = {
    "姓名": ["小明", "小红", "小刚"],
    "年龄": [18, 17, 19],
    "成绩": [92, 88, 95],
}
df = pd.DataFrame(data)
print(df)
   姓名  年龄  成绩
0  小明  18  92
1  小红  17  88
2  小刚  19  95

(不同终端里中英文混排的对齐可能略有差异,能看清就行,别纠结。)

拿到手先看三眼

拿到任何一份新数据,先别急着分析,用这三招"验货":

print(df.head())    # 看前 5 行,数据太长先扫一眼
print(df.shape)     # 几行几列
df.info()           # 每列的类型、有没有缺数据
   姓名  年龄  成绩
0  小明  18  92
1  小红  17  88
2  小刚  19  95

(3, 3)

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   姓名      3 non-null      object
 1   年龄      3 non-null      int64
 2   成绩      3 non-null      int64
dtypes: int64(2), object(1)
memory usage: 200.0+ bytes

info() 重点看两处:每列的 Non-Null Count(非空数量,比总行数少就是有缺失值)和 Dtype(数据类型;文本列旧版显示 object,新版显示 str,一个意思)。

本章解读

代码 作用
pd.Series(列表) 造一列带索引的数据
pd.DataFrame(字典) 字典 → 一张表,键是列名
df.head() 看前 5 行,head(3) 就是前 3 行
df.shape 行数和列数,是个元组,如 (3, 3)
df.info() 行数、列类型、缺失情况一页看完

记忆口诀

Series 是一列,DataFrame 是一张表;字典变表格,head 看三眼。

动手改

  1. 给字典再加一列 "性别",重新 print(df) 看看效果
  2. 把 df.head() 换成 df.head(2),对比输出差别
  3. 故意把"年龄"列表少写一个数(只给 2 个值),看看 pandas 报什么错——报错读三遍,比看十遍教程记得牢

下一章:读取数据,把自己的 Excel / CSV 喂给 pandas 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。