Python全栈开发-第1章 Pandas数据处理实战
2026/7/15 12:00:44 网站建设 项目流程

第一篇 · 数据分析与可视化

📊 第1章 Pandas数据处理实战

像Excel一样强大,但能处理百万行数据

1.1 DataFrame:你的数据工作台

从Series到DataFrame,掌握Pandas核心数据结构

如果把Pandas比作一把瑞士军刀,那DataFrame就是其中最大、最常用的刀片。你可以把DataFrame想象成一张Excel表格——有行、有列、有表头,还能对每一列做各种运算。但跟Excel不同的是,DataFrame能轻松处理上百万行的数据,而且速度飞快。

在深入DataFrame之前,我们先认识它的“弟弟”——Series。Series就像DataFrame中的一列,它是一个带标签的一维数组。你可以把它想成Excel中的某一列数据

importpandasaspdimportnumpyasnp# ===== 创建Series =====scores=pd.Series([92,85,78,96,88],index=['小明','小红','小刚','小丽','小强'],name='数学成绩')print('=== Series示例 ===')print(scores)print(f'小明的成绩:{scores["小明"]}')# ===== 创建DataFrame =====df=pd.DataFrame({'姓名':['小明','小红','小刚','小丽','小强'],'数学':[92,85,78,96,88],'语文':[88,92,81,90,85],'英语':[90,87,93,85,91],'班级':['一班','一班','二班','二班','二班']})print('\n=== DataFrame示例 ===')print(df)print(f'\n数据类型:\n{df.dtypes}')print(f'\n表格形状:{df.shape}')

💡 技巧

快速创建DataFrame的捷径:如果你已经有一个字典,可以直接用pd.DataFrame(字典)转换。如果数据来自列表的列表,可以传入columns参数指定列名:
pd.DataFrame([[1,2],[3,4]], columns=['A','B'])

创建了DataFrame之后,我们需要“认识”它。就像拿到一张新报表,你首先要看它有多大、包含什么内容。Pandas提供了一系列**“侦察”方法**,帮你快速了解数据全貌:

importpandasaspd sales_df=pd.DataFrame({'日期':['2024-01-01','2024-01-02','2024-01-03','2024-01-04','2024-01-05','2024-01-06','2024-01-07'],'产品':['手机','笔记本','手机','平板','笔记本','手机','平板'],'销量':[15,8,12,6,10,18,7],'单价':[5999,8999,5999,3299,8999,5999,3299],'门店':['北京店','上海店','北京店','广州店','上海店','北京店','广州店']})print('=== 前3行 ===')print(sales_df.head(3))print('\n=== 后2行 ===')print(sales_df.tail(2))print('\n=== 数据概览 ===')sales_df.info()print('\n=== 统计摘要 ===')print(sales_df.describe())sales_df['销售额']=sales_df['销量']*sales_df['单价']print('\n=== 新增销售额列 ===')print(sales_df)

🔑 核心要点

核心知识点

  • pd.Series= 一维带标签数组,类似Excel的一列
  • pd.DataFrame= 二维表格,类似一张Excel表
  • head(n)/tail(n):查看前/后n行
  • info():查看列名、数据类型、缺失值数量
  • describe():数值列的统计摘要
  • df.shape:返回(行数, 列数)

🧪 随堂测验

下面哪个方法可以查看DataFrame中每一列的数据类型和缺失值数量?

  • A. df.describe()
  • B. df.head()
  • C. df.info()
  • D. df.shape

答案解析:df.info() 会显示所有列的名称、数据类型(dtype)以及每列非空值的数量(由此可以推算缺失值数量)。describe()只给出数值列的统计摘要,head()只显示前几行数据,shape只返回行列数。

1.2 数据加载与探索

把文件里的数据“倒”进DataFrame

在真实工作中,你的数据不会凭空出现在代码里—它们通常藏在CSV文件、Excel表格、JSON文件甚至数据库中。Pandas就像一个万能的“数据漏斗”,能把各种格式的文件轻松“倒”进DataFrame中。

这一课,我们用一份电商订单数据来学习数据加载和初步探索。

importpandasaspdimportnumpyasnpfromioimportStringIO csv_data="""订单ID,客户,商品,数量,单价,日期,城市 1001,张三,iPhone 15,1,6999,2024-03-01,北京 1002,李四,MacBook Air,2,8999,2024-03-01,上海 1003,王五,iPhone 15,1,6999,2024-03-02,广州 1004,赵六,iPad Pro,3,6799,2024-03-02,北京 1005,张三,AirPods,2,1299,2024-03-03,北京 1006,孙七,MacBook Pro,1,14999,2024-03-03,深圳 1007,李四,iPhone 15,1,6999,2024-03-04,上海 1008,周八,iPad Pro,2,6799,2024-03-04,广州 1009,王五,AirPods,1,1299,2024-03-05,广州 1010,赵六,MacBook Air,1,8999,2024-03-05,北京"""df=pd.read_csv(StringIO(csv_data))print('=== 数据维度 ===')print(f'行数:{df.shape[0]}, 列数:{df.shape[1]}')print('\n=== 列数据类型 ===')print(df.dtypes)print('\n=== 数值列统计 ===')print(df[['数量','单价']].describe())print('\n=== 商品销量分布 ===')print(df['商品'].value_counts())print('\n=== 城市订单分布 ===')print(df['城市'].value_counts())print

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询