网易首页 > 网易号 > 正文 申请入驻

Pandas入门指南:数据处理从未如此简单!看完这篇你就会用了

0
分享至

你是不是经常遇到这样的场景?

Excel表格打开卡成PPT,几十万行数据一动就死机;

领导甩给你一堆CSV文件,让你“汇总一下各部门的销售额”;

网上爬下来的数据乱七八糟,缺斤少两还有错别字……

这时候要是你会用 Pandas,简直像开了挂!这个Python里的“数据处理瑞士军刀”,能让几小时的手工活变成几分钟的代码操作。今天就带你彻底搞懂Pandas,从安装到实战,包教包会!

一、为啥要用Pandas?Excel不香吗?

先别急着反驳:“我用Excel透视表也能搞定啊!” 但你试试这几个场景:

数据量太大:Excel最多支持104万行,超过这个数直接罢工;Pandas轻松处理百万级数据。

重复性操作:每天要从10个CSV文件里提取同一列数据?Excel手动复制粘贴累到吐血;Pandas写段循环代码,一键搞定。

复杂计算:比如“计算每个城市每月销售额环比增长率”“筛选同时满足3个条件的数据”——Excel公式写得头晕眼花,Pandas一行代码解决。

一句话:Pandas是给数据“批量做手术”的工具,尤其适合程序员、数据分析师、运营同学日常搬砖。

二、5分钟上手Pandas:安装+核心概念

1. 安装:一行命令的事儿

打开终端(Windows叫“命令提示符”),输入:

pip install pandas

如果网速慢,国内用户可以用清华镜像加速:

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

2. 核心概念:DataFrame和Series

Pandas有两个“灵魂”:

Series:可以理解为一列数据,比如“姓名”列、“年龄”列,自带索引(类似Excel的行号)。

DataFrame:可以理解为一张完整的表格,包含多列Series,既有行索引也有列名(类似Excel的工作表)。

举个栗子:

假设我们有个学生成绩表:

姓名 语文 数学 英语

小明 85 92 78

小红 90 88 95

小刚 76 95 82

在Pandas里,这就是一个 DataFrame,其中“姓名”列是一个 Series(索引是0、1、2),整个表格也是一个DataFrame(索引默认是0、1、2,列名是“姓名”“语文”等)。

三、Pandas必学操作:从读数据到存结果

1. 读数据:告别“另存为CSV”

Pandas支持几乎所有常见格式:CSV、Excel、JSON、SQL数据库……最常用的就是读CSV和Excel。

读csv文件:

import pandas as pd # 惯例:导入pandas并简写为pd

# 读取当前文件夹下的“成绩.csv”文件

df = pd.read_csv("成绩.csv") print(df) # 打印表格看看长啥样

读Excel文件(需要先安装

"openpyxl"库):

pip install openpyxl # 第一次用Excel需要装这个 df = pd.read_excel("成绩.xlsx", sheet_name="Sheet1") # 指定sheet页

2. 看数据:先瞅瞅“长啥样”

拿到数据别急着算,先看看基本信息:

df.head(3) # 显示前3行(默认5行)

df.tail(2) # 显示后2行

df.shape # 输出 (行数, 列数),比如 (3, 4)

df.info() # 查看每列数据类型(数字/字符串/日期)、是否有缺失值

df.describe() # 对数字列做统计(均值、最大值、最小值等)

比如上面的成绩表,

"df.describe()"会输出语文、数学、英语的平均分、最高分等。

3. 改数据:增删改查一条龙

新增一列(比如计算总分):

df["总分"] = df["语文"] + df["数学"] + df["英语"]

删除一列(比如删除“姓名”列):

df = df.drop(columns=["姓名"]) # 注意:drop默认返回新表格,原表格不变,所以要赋值回去

修改数据(比如把小明的数学成绩改成95):

df.loc[df["姓名"] == "小明", "数学"] = 95 # loc按标签查找,“姓名=小明”的行,“数学”列

筛选数据(比如筛选数学成绩>90的学生):

high_math = df[df["数学"] > 90]

print(high_math[["姓名", "数学"]]) # 只看姓名和数学成绩

4. 存数据:一键导出Excel/CSV

处理完数据,导出给别人看:

df.to_csv("处理后的成绩.csv", index=False) # index=False表示不保存行索引

df.to_excel("处理后的成绩.xlsx", sheet_name="成绩单", index=False)

四、进阶技巧:让数据处理效率翻倍

1. 批量处理:循环?不存在的!

很多人习惯用for循环遍历数据,但在Pandas里,向量化操作(对整个列进行计算)比循环快100倍!

比如计算每个学生的平均分(不用循环):

df["平均分"] = (df["语文"] + df["数学"] + df["英语"]) / 3

或者用内置函数:

df["平均分"] = df[["语文", "数学", "英语"]].mean(axis=1) # axis=1表示按行计算

2. 分组统计:透视表的平替

想知道“每个班级的平均分”?用

"groupby"分组:

# 假设新增“班级”列:小明和小红是1班,小刚是2班

df["班级"] = ["1班", "1班", "2班"]

# 按班级分组,计算各科平均分

class_avg = df.groupby("班级")[["语文", "数学", "英语"]].mean() print(class_avg)

输出结果:

语文 数学 英语

班级

1班 87.5 90.0 86.5

2班 76.0 95.0 82.0

3. 处理缺失值:别让空值毁了分析

现实数据总会有缺失(比如某学生没考英语),Pandas用

"NaN"(Not a Number)表示空值。

检查缺失值:

df.isnull().sum() # 统计每列有多少空值 填充缺失值(比如用平均分填充英语成绩):
df["英语"] = df["英语"].fillna(df["英语"].mean()) # 用该列平均值填充

删除含缺失值的行:

df = df.dropna() # 直接删,谨慎用!

4. 合并表格:VLOOKUP的终结者

比如有两个表:

"学生信息表":姓名、班级

"成绩表":姓名、语文、数学

想把两个表合并成“带班级的成绩表”,用

"merge":

# 假设已读入两个表:info_df(学生信息)和 score_df(成绩)

merged_df = pd.merge(score_df, info_df, on="姓名", how="left") # 按“姓名”列合并,保留所有成绩

五、避坑指南:新手常犯的3个错误

1. 忘记

"inplace=True"很多方法(如

"drop"、

"fillna")默认返回新表格,原表格不变。如果想直接修改原表格,要加

"inplace=True":

df.drop(columns=["姓名"], inplace=True) # 直接删除原表格的“姓名”列

2. 混淆

"loc"和

"iloc"

"loc":按标签(行名/列名)取数据,比如

"df.loc[0, "语文"]"(第0行“语文”列)。

"iloc":按位置(行号/列号)取数据,比如

"df.iloc[0, 1]"(第0行第1列,即“语文”列)。新手建议优先用

"loc",更直观。

3. 数据没排序就取Top N想取“数学成绩前2名”,别直接

"df.head(2)",要先排序:

top2 = df.sort_values(by="数学", ascending=False).head(2) # ascending=False降序排列

六、实战案例:用Pandas分析销售数据

假设你有一份“2023年销售数据.csv”,包含字段:日期、产品、地区、销售额。

目标:分析“各地区Q4销售额占比”。

1. 读数据: "df = pd.read_csv("销售数据.csv")" 2. 提取Q4数据(10-12月): df["日期"] = pd.to_datetime(df["日期"]) # 转为日期格式 q4_df = df[(df["日期"].dt.month >= 10) & (df["日期"].dt.month <= 12)] 3. 按地区分组求总销售额: region_sales = q4_df.groupby("地区")["销售额"].sum() 4. 计算占比: region_sales_ratio = region_sales / region_sales.sum() * 100 # 转为百分比 print(region_sales_ratio.round(2)) # 保留两位小数

结果示例:

地区

华北 35.2

华东 28.7

华南 22.1

西南 14.0

Name: 销售额, dtype: float64


实战案例:用Pandas分析销售数据

七、学习资源:从入门到精通

官方文档:"Pandas Documentation" (https://pandas.pydata.org/docs/)(最权威,有中文版)

免费教程:B站“莫烦Python”Pandas系列(讲得超细,适合零基础)

练习数据集:Kaggle(搜索“Titanic”“House Prices”等经典数据集)

Pandas的强大远不止这些,但掌握今天讲的“读、看、改、存、分组、合并”6大核心操作,已经能解决80%的日常数据处理需求。

下次再遇到Excel卡死、数据杂乱的情况,别慌,打开Python,用Pandas让数据“乖乖听话”!

你用Pandas解决过最头疼的问题是什么?评论区聊聊,抽3位送《Pandas实战手册》电子版~

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
洲际导弹有多快,从海南到纽约歼-20战机需要3小时,东风-41呢?

洲际导弹有多快,从海南到纽约歼-20战机需要3小时,东风-41呢?

夕阳渡史人
2026-02-01 09:25:52
部长王祥喜,被查

部长王祥喜,被查

新京报
2026-01-31 16:11:04
医院揭秘:一台10万的手术,主刀医生能拿多少?三甲医生告诉你

医院揭秘:一台10万的手术,主刀医生能拿多少?三甲医生告诉你

谈史论天地
2026-01-31 16:39:54
CBA夺冠最有希望的三支,和基本没希望的三支

CBA夺冠最有希望的三支,和基本没希望的三支

大眼瞄世界
2026-01-31 23:26:39
航天电子击鼓传花撞上SpaceX百万卫星,谁在被现实打脸

航天电子击鼓传花撞上SpaceX百万卫星,谁在被现实打脸

粤语音乐喷泉
2026-02-01 10:04:27
2.1日早评|史诗级跳水!黄金大消息!下周要爆了!

2.1日早评|史诗级跳水!黄金大消息!下周要爆了!

龙行天下虎
2026-02-01 04:10:14
热水袋是大补,医生提醒:一个热水袋胜过十个老中医!不要嫌老土

热水袋是大补,医生提醒:一个热水袋胜过十个老中医!不要嫌老土

岐黄传人孙大夫
2026-01-29 05:55:03
刘强东母亲不住光明村别墅,最晚离开物资现场

刘强东母亲不住光明村别墅,最晚离开物资现场

观察鉴娱
2026-02-01 15:18:20
害!!湖人要的亨特被截胡了,小黑换工作想起了我自己!

害!!湖人要的亨特被截胡了,小黑换工作想起了我自己!

风子说个球
2026-02-01 15:48:41
华西村那头1吨金牛,15年后竟成最成功的投资?

华西村那头1吨金牛,15年后竟成最成功的投资?

财经保探长
2026-01-30 18:38:42
毛岸英入朝作战牺牲,主要责任人是谁?毛主席其实早就点明过真相

毛岸英入朝作战牺牲,主要责任人是谁?毛主席其实早就点明过真相

宋诉搞笑配音
2026-01-29 18:46:57
公安局副局长入股色情场所 3年收分红76万元 一审被判6年处罚金30万元

公安局副局长入股色情场所 3年收分红76万元 一审被判6年处罚金30万元

闪电新闻
2026-01-31 18:00:22
在潜艇里工作有多难熬,拿工资来证明,潜艇兵工资,是按小时计算

在潜艇里工作有多难熬,拿工资来证明,潜艇兵工资,是按小时计算

忠于法纪
2026-01-24 16:27:51
A股:刚刚,政治局会议召开,释放一信号,下周一将迎来新的行情

A股:刚刚,政治局会议召开,释放一信号,下周一将迎来新的行情

云鹏叙事
2026-02-01 00:00:07
为什么美国、日本第一时间就知道中国的决策、军事及重大的工程等

为什么美国、日本第一时间就知道中国的决策、军事及重大的工程等

今墨缘
2026-01-30 12:45:45
小叔子带着全家投靠,我无奈下找理由回了娘家,8天后老公带来消息

小叔子带着全家投靠,我无奈下找理由回了娘家,8天后老公带来消息

今天说故事
2025-08-13 10:17:31
奔驰官宣全新 S 级,号称「最全面最智能」!能打过尊界 S800?

奔驰官宣全新 S 级,号称「最全面最智能」!能打过尊界 S800?

电动星球News
2026-01-30 15:07:48
2026亚冠迎巨变!中超参赛3队或全换,成都蓉城有望成最大赢家

2026亚冠迎巨变!中超参赛3队或全换,成都蓉城有望成最大赢家

体坛鉴春秋
2026-02-01 14:06:02
55年授衔,王建安被毛主席从上将名单删掉,对此王建安是何态度?

55年授衔,王建安被毛主席从上将名单删掉,对此王建安是何态度?

品点历史
2026-02-01 07:45:04
白银连环杀人凶手高承勇:为儿子前途收手,被捕后儿子被单位辞退

白银连环杀人凶手高承勇:为儿子前途收手,被捕后儿子被单位辞退

谈史论天地
2026-01-26 16:55:03
2026-02-01 16:04:54
冒泡泡的鱼儿
冒泡泡的鱼儿
每天带来社会资讯
493文章数 15104关注度
往期回顾 全部

科技要闻

腾讯元宝宣布:10亿现金红包,今日开抢

头条要闻

马斯克曾问爱泼斯坦:岛上哪一晚会有"最疯狂的派对"

头条要闻

马斯克曾问爱泼斯坦:岛上哪一晚会有"最疯狂的派对"

体育要闻

锁喉吃红牌+扇耳光 英超15人打群架

娱乐要闻

马年春晚第三次联排,多位明星现身

财经要闻

黄仁勋台北"夜宴":汇聚近40位台企高管

汽车要闻

岚图汽车1月交付10515辆 同比增长31%

态度原创

时尚
健康
艺术
游戏
公开课

伊姐周六热推:电视剧《年少有为》;电视剧《有罪之身》......

耳石症分类型,症状大不同

艺术要闻

明代隐藏的“草书高手”,他的字无人能模仿

Faker晒照配文:LCK杯加油!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版