首页 游戏 软件 资讯 排行榜 专题
首页
业界动态
Pandas 入门二:DataFrame 核心操作,新手也能轻松筛选/修改数据

Pandas 入门二:DataFrame 核心操作,新手也能轻松筛选/修改数据

热心网友
56
转载
2026-04-14

Pandas数据处理实战:从数据洞察到精准操作

在上一篇文章中,我们掌握了Pandas的安装和数据读取,成功将表格数据加载为DataFrame。今天,我们将继续深入,聚焦数据处理中最核心的三个环节:如何快速了解你的数据、如何精准筛选出目标信息,以及如何高效地修改数据内容。每个环节都配有可直接复制的代码和直观的结果展示,跟随步骤实践一遍,你就能在短时间内掌握DataFrame的基础操作精髓。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

一、衔接回顾:数据准备

让我们先快速回顾并准备好操作环境。沿用上一篇的示例数据,通过几行代码即可将数据载入并预览。

import pandas as pd
# 读取数据(确保文件路径正确)
df = pd.read_csv("data.csv")
print("原始数据:")
print(df.head())

运行后,你将看到一个结构清晰的DataFrame:

原始数据:
   姓名  年龄  城市  消费金额
0  张三  25  北京    300
1  李四  32  上海    500
2  王五  28  广州    450
3  赵六  23  深圳    380
4  孙七  35  杭州    600

后续的所有操作都将基于这个DataFrame展开。

二、第一步:快速数据诊断

在动手筛选或修改之前,花几分钟了解数据的“底细”至关重要。这能帮你避免后续操作中的许多潜在错误。

1. 查看数据基本信息:info()

想要一目了然地掌握数据全貌吗?info()函数是你的首选。它能告诉你数据有多少行、多少列、每列的数据类型以及是否存在缺失值。

df.info()

运行结果示意:


RangeIndex: 10 entries, 0 to 9  # 共10行数据
Data columns (total 4 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   姓名     10 non-null     object
 1   年龄     10 non-null     int64
 2   城市     10 non-null     object
 3   消费金额   10 non-null     int64
dtypes: int64(2), object(2)

2. 查看数据统计信息:describe()

如果数据中包含数值列(如年龄、金额),describe()能快速生成一份统计摘要,包括计数、均值、标准差、分位数等关键指标。

df.describe()

运行结果示意:

年龄      消费金额
count  10.000000   10.000000  # 数据个数
mean   29.300000  423.000000  # 平均值
std     4.578209  105.687374  # 标准差
min    23.000000  300.000000  # 最小值
25%    26.500000  365.000000  # 25%分位数
50%    29.000000  435.000000  # 中位数
75%    32.500000  500.000000  # 75%分位数
max    35.000000  600.000000  # 最大值

3. 查看数据形状:shape

想立刻知道数据表是“高瘦型”还是“矮胖型”吗?使用shape属性(注意,它不是函数,不需要括号)。

print("数据形状(行数×列数):", df.shape)  # 输出:(10, 4) 表示10行4列

三、第二步:核心数据筛选技巧

数据筛选是数据分析的日常高频操作。无论是提取特定列,还是根据条件过滤行,Pandas都能用简洁的代码高效完成。

1. 场景一:按列筛选

假设我们只需要查看“姓名”和“消费金额”这两列,有两种主流且简单的方法。

# 方法1:直接传入列名列表(最直观)
df_selected = df[["姓名", "消费金额"]]

# 方法2:使用loc函数(为后续复杂筛选铺垫)
df_selected2 = df.loc[:, ["姓名", "消费金额"]]  # 冒号:表示选取所有行

print("筛选后的数据(姓名+消费金额):")
print(df_selected.head())

运行结果:

筛选后的数据(姓名+消费金额):
   姓名  消费金额
0  张三    300
1  李四    500
2  王五    450
3  赵六    380
4  孙七    600

2. 场景二:按条件筛选行

如何找出“年龄大于28岁”或“城市在北京”的用户?这就需要用到“布尔索引”。

# 1. 筛选年龄大于28岁的用户
df_age = df[df["年龄"] > 28]
print("年龄大于28岁的用户:")
print(df_age)

# 2. 筛选城市是北京的用户(文本匹配需用==)
df_city = df[df["城市"] == "北京"]
print("\n城市是北京的用户:")
print(df_city)

# 3. 多条件组合筛选(例如:年龄>25 且 消费金额≥400)
# 关键点:每个条件必须用括号括起来,逻辑运算符使用 &(且)、|(或)
df_multi = df[(df["年龄"] > 25) & (df["消费金额"] >= 400)]
print("\n年龄>25且消费金额≥400的用户:")
print(df_multi)

运行结果示意(多条件筛选):

年龄>25且消费金额≥400的用户:
   姓名  年龄  城市  消费金额
1  李四  32  上海    500
2  王五  28  广州    450
4  孙七  35  杭州    600

3. 进阶技巧:按位置索引筛选

当你明确知道需要第几行、第几列的数据时,iloc(基于整数位置的索引)是最高效的工具。

# iloc[行索引, 列索引] → 索引从0开始计数
# 1. 选取第2行(索引为1)的所有列
df_row = df.iloc[1, :]
print("第2行数据:")
print(df_row)

# 2. 选取前3行(索引0-2)的第1列和第4列(索引0和3)
df_row_col = df.iloc[:3, [0, 3]]
print("\n前3行的姓名和消费金额:")
print(df_row_col)

四、第三步:数据修改与增强

筛选出目标数据后,修改和增强是常见的后续步骤。以下四个操作覆盖了大部分修改需求。

1. 修改列名

如果原始列名不够直观,可以使用rename()函数进行批量或单个修改。

# 通过字典映射修改列名
df_renamed = df.rename(columns={"消费金额": "消费总额", "城市": "所在城市"})
print("修改列名后:")
print(df_renamed.head())

运行结果示意:

修改列名后:
   姓名  年龄  所在城市  消费总额
0  张三  25  北京    300
1  李四  32  上海    500

2. 修改特定单元格的值

需要修正某个具体数据?例如,将“张三”的消费金额改为350。

# 推荐方法:按条件定位修改(更安全,不易因行序变动而出错)
df.loc[df["姓名"] == "张三", "消费金额"] = 350

# 备选方法:按精确索引位置修改(已知行号列号时使用)
# df.iloc[0, 3] = 350  # 第1行第4列

print("修改后的数据(张三的消费金额):")
print(df[df["姓名"] == "张三"])

运行结果:

修改后的数据(张三的消费金额):
   姓名  年龄  城市  消费金额
0  张三  25  北京    350

3. 添加新列

基于现有列计算衍生指标是数据分析的常见需求,例如计算折扣价或打标签。

# 1. 添加“折扣后金额”(基于消费金额计算)
df["折扣后金额"] = df["消费金额"] * 0.9

# 2. 添加“是否高消费”标签(条件判断)
df["是否高消费"] = df["消费金额"] >= 500  # 结果为布尔值True/False

print("添加新列后:")
print(df.head())

运行结果示意:

添加新列后:
   姓名  年龄  城市  消费金额  折扣后金额  是否高消费
0  张三  25  北京    350    315.0    False
1  李四  32  上海    500    450.0     True
2  王五  28  广州    450    405.0    False

4. 删除列或行

对于不再需要的数据,可以将其从DataFrame中移除。

# 1. 删除列:指定axis=1,inplace=True表示直接修改原数据
df.drop(columns=["是否高消费"], axis=1, inplace=True)

# 2. 删除行:指定axis=0,例如删除索引为3的行
df.drop(index=[3], axis=0, inplace=True)

print("删除列和行后:")
print(df.head())

五、新手避坑指南

在实践过程中,有几个高频错误点需要特别注意:

列名书写错误:列名必须与df.info()的输出完全一致,注意中英文、空格和大小写。

多条件筛选缺少括号:像df[df[“年龄”]>25 & df[“消费金额”]≥400]这样的写法会报错。务必为每个独立条件加上括号:(df[“年龄”]>25) & (df[“消费金额”]≥400)

混淆loc与ilocloc基于标签(列名/行索引名)筛选,iloc基于整数位置索引筛选。

修改未保存:如果希望将修改后的数据持久化到文件,记得使用df.to_csv(“新文件名.csv”, index=False)进行保存。

六、技能总结

至此,你已经掌握了Pandas DataFrame基础操作的核心技能:

使用info()describe()shape快速完成数据诊断。

运用列筛选、条件筛选和索引筛选,精准定位目标数据。

执行列名修改、值更新、列添加与删除,实现数据内容的调整与增强。

识别并避开常见错误,确保代码的稳定运行。

恭喜!现在你已经具备了用代码高效处理表格数据的能力,可以尝试将这些技巧应用到实际工作场景中了。

来源:https://www.51cto.com/article/834613.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

Pandas 入门二:DataFrame 核心操作,新手也能轻松筛选/修改数据
业界动态
Pandas 入门二:DataFrame 核心操作,新手也能轻松筛选/修改数据

Pandas数据处理实战:从数据洞察到精准操作 在上一篇文章中,我们掌握了Pandas的安装和数据读取,成功将表格数据加载为DataFrame。今天,我们将继续深入,聚焦数据处理中最核心的三个环节:如何快速了解你的数据、如何精准筛选出目标信息,以及如何高效地修改数据内容。每个环节都配有可直接复制的代

热心网友
04.14
Pandas 入门三:数据清洗必学!缺失值/重复值处理,一步到位不踩坑
业界动态
Pandas 入门三:数据清洗必学!缺失值/重复值处理,一步到位不踩坑

今天我们将会学习 Pandas 数据清洗的核心:缺失值“先检测后处理(删除 填充)”,重复值“一键去重”,新手跟着代码跑一遍就能掌握! 大家好,Pandas系列教程继续推进。前两期我们搭建了基础环境,掌握了数据读取和DataFrame的核心操作。今天,我们要深入到数据处理中避不开的“关键一步”——数

热心网友
04.14
Pandas 实战九:时序数据处理,日期筛选/统计分析一看就会
业界动态
Pandas 实战九:时序数据处理,日期筛选/统计分析一看就会

今天,咱们来搞定时序数据的核心操作 接续上篇《Pandas 实战八:电商数据案例分析》,这次我们聚焦数据处理中的另一个重要板块:时序数据。掌握了日期格式转换、按周期筛选、统计与趋势分析这几项技能,你就能轻松应对日常工作中绝大多数与时间相关的分析需求了。 什么是时序数据?顾名思义,就是那些带有日期或时

热心网友
04.14
Python效率神器Pandas-Profiling:快速完成数据探索性分析
科技数码
Python效率神器Pandas-Profiling:快速完成数据探索性分析

Pandas-Profiling,能一键生成包含统计指标、缺失值、相关性等内容的交互式HTML报告,让探索性数据分析(EDA)效率直接翻倍。 很多同学刚接触数据分析时,习惯用df describe(

热心网友
03.31
如何进行OASIS币的量化交易?
web3.0
如何进行OASIS币的量化交易?

OASIS量化交易是一种利用算法和模型自动买卖OASIS代币的策略。它涉及选择策略、建立算法、连接数据源、配置交易平台、优化参数和监控交易等步骤,需要量化交易软件、价格数据、交易平

热心网友
06.28

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

Lemonaid-AI音乐生成工具
AI
Lemonaid-AI音乐生成工具

Lemonaid是什么 如果你正为音乐创作寻找得力助手,那么Lemonaid很可能就是答案。它是一款专门面向专业音乐人打造的AI音乐生成工具,核心能力在于自主生成包含完整旋律、和声与节奏的乐曲。无论是想要一段氛围感十足的背景音乐,还是为具体场景定制配乐,它都能提供高度逼真且质量上乘的作品。工具提供了

热心网友
04.14
苹果折叠屏iPhone Ultra关键点汇总:这4个问题你肯定想知道
iphone
苹果折叠屏iPhone Ultra关键点汇总:这4个问题你肯定想知道

苹果也要出折叠屏,传闻已经有几年了,从目前供应链、分析师与知名爆料者释放的信息来看,这款与市面大折都不一样的阔折叠似乎已经蓄势待发,大概率今年下半年就要正式面市。今天我们就来为大家汇总一波,没准儿就有你想知道的消息。 关于苹果折叠屏手机的传闻,已经流传了好几年。如今,综合供应链、分析师以及各路知名爆

热心网友
04.14
《刺客信条4:黑旗 重制版》对手来了!被称为4A级海盗大作
游戏评测
《刺客信条4:黑旗 重制版》对手来了!被称为4A级海盗大作

《刺客信条:黑旗重制版》官宣之际,这款新海盗游戏为何能抢先赢得玩家口碑? 当游戏界的焦点都集中在《刺客信条:黑旗重制版》的正式公布时,一款名为《风启之旅》(Windrose)的开放世界海盗生存建造游戏,却凭借其过硬的品质与独特的玩法融合,悄然在玩家社区中掀起热议。这款由乌兹别克斯坦团队Kraken

热心网友
04.14
腾讯智影-智能视频创作与发布一体化平台
AI
腾讯智影-智能视频创作与发布一体化平台

产品介绍 提到云端智能视频创作,腾讯智影是一个绕不开的名字。这款由腾讯推出的平台,本质上是一个一站式的在线视频工厂,集成了从素材挖掘、剪辑、渲染到最终发布的全链路功能,旨在为用户提供全方位的视频创作解决方案。更吸引人的是,它不仅免费开放,还深度整合了多项前沿AI技术,目标很明确:让视频化表达这件事,

热心网友
04.14
比心被拒小哥回应:不尴尬 尊重Coser 大家当个乐子
游戏评测
比心被拒小哥回应:不尴尬 尊重Coser 大家当个乐子

《王者荣耀世界》线下活动风波:合影互动引争议,职业素养与网络舆论深度探讨 近日,《王者荣耀世界》的一场线下玩家见面会,因台上一次短暂的合影互动,意外成为全网热议的焦点。活动中,一位男粉丝上台与角色扮演者(Coser)合影时,主动做出比心手势以示友好,却未得到身旁Coser的任何回应。男生举着手势在原

热心网友
04.14