首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】《Python网络爬虫从入门到精通》029-DataFrame数据的增删改查

【愚公系列】《Python网络爬虫从入门到精通》029-DataFrame数据的增删改查

原创
作者头像
愚公搬代码
发布2025-09-16 00:57:18
发布2025-09-16 00:57:18
100
代码可运行
举报
运行总次数:0
代码可运行
在这里插入图片描述
在这里插入图片描述

💎【行业认证·权威头衔】

✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家

✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主

✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者

🏆【荣誉殿堂】

🎖 连续三年蝉联"华为云十佳博主"(2022-2024)

🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)

🎖 十余个技术社区年度杰出贡献奖得主

📚【知识宝库】

覆盖全栈技术矩阵:

◾ 编程语言:.NET/Java/Python/Go/Node...

◾ 移动生态:HarmonyOS/iOS/Android/小程序

◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙

◾ 游戏开发:Unity3D引擎深度解析

🚀前言

在数据分析的过程中,灵活地对数据进行增删改查(CRUD操作)是至关重要的。Pandas库中的DataFrame对象作为一种强大的数据结构,为我们提供了高效、直观的数据处理能力。无论是数据清洗、预处理,还是后续的分析与可视化,掌握DataFrame的增删改查操作,都是每位数据分析师必不可少的技能。

本文将详细介绍如何在DataFrame中进行数据的增、删、改、查操作。我们将通过具体的示例,帮助你理解如何灵活地管理和操控数据,使你的分析工作更加高效和顺畅。

🚀一、DataFrame数据的增删改查

🔎1.增加数据

🦋1.1 按列增加

方法一:直接赋值

代码语言:python
代码运行次数:0
运行
复制
import pandas as pd
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.east_asian_width', True)
data = [[110,105,99],[105,88,115],[109,120,130],[112,115,140]]
name = ['明日','七月流火','高袁圆','二月二']
columns = ['语文','数学','英语']
df = pd.DataFrame(data=data, index=name, columns=columns)
df['物理']=[88,79,60,50]
# df.loc[:,'物理'] = [88,79,60,50]
print(df)
# wl =[88,79,60,50]
# df.insert(1,'物理',wl)
# print(df)

输出:

在这里插入图片描述
在这里插入图片描述

方法二:使用loc属性添加列

代码语言:python
代码运行次数:0
运行
复制
df.loc[:, '物理'] = [88, 79, 60, 50]  # 等效于直接赋值

方法三:使用insert插入列

代码语言:python
代码运行次数:0
运行
复制
wl = [88, 79, 60, 50]
df.insert(1, '物理', wl)  # 在第1列后插入新列
print(df)

输出:

代码语言:bash
复制
      语文  物理  数学   英语
明日    110   88  105   99
七月流火 105   79   88  115
高袁圆   109   60  120  130
二月二   112   50  115  140

🦋1.2 按行增加

方法一:使用loc添加单行

代码语言:python
代码运行次数:0
运行
复制
df.loc['钱多多'] = [100, 120, 99]  # 添加一行数据
print(df)

输出:

代码语言:bash
复制
        语文   数学   英语
明日      110  105    99
七月流火   105   88   115
高袁圆    109  120   130
二月二    112  115   140
钱多多    100  120    99

方法二:使用concat添加多行

代码语言:python
代码运行次数:0
运行
复制
df_insert = pd.DataFrame(
    {'语文': [100, 123, 138], '数学': [99, 142, 60], '英语': [98, 139, 99]},
    index=['钱多多', '童年', '无名']
)
df = pd.concat([df, df_insert], ignore_index=True)
print(df)

输出:

代码语言:bash
复制
        语文   数学   英语
明日      110  105    99
七月流火   105   88   115
高袁圆    109  120   130
二月二    112  115   140
钱多多    100   99    98
童年      123  142   139
无名      138   60    99

🔎2.删除数据

DataFrame.drop() 方法

drop()方法用于删除DataFrame中的行或列。语法格式如下:

代码语言:python
代码运行次数:0
运行
复制
DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

参数说明:

  1. labels:
    • 表示要删除的行标签或列标签。如果指定了indexcolumns,则labels是多余的。
  2. axis:
    • axis=0:表示按行删除,默认值为0。
    • axis=1:表示按列删除。
  3. index:
    • 删除行的标签,默认为None。如果指定了该参数,labels可以省略。
  4. columns:
    • 删除列的标签,默认为None。如果指定了该参数,labels可以省略。
  5. level:
    • 针对有多级索引(MultiIndex)的数据,指定删除的索引级别。
      • level=0:表示按第1级索引删除整行。
      • level=1:表示按第2级索引删除整行。
      • 默认值为None
  6. inplace:
    • 是否对原数组进行修改。
      • False(默认值):返回一个新的DataFrame对象,原DataFrame不受影响。
      • True:原DataFrame会被直接修改,不会返回新的DataFrame。
  7. errors:
    • 设定错误处理方式。
      • raise(默认值):如果指定的标签不存在,则抛出错误。
      • ignore:忽略错误,不会抛出异常。

🦋2.1 删除行列

代码语言:python
代码运行次数:0
运行
复制
import pandas as pd
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.east_asian_width', True)
data = [[110,105,99],[105,88,115],[109,120,130],[112,115,140]]
name = ['明日','七月流火','高袁圆','二月二']
columns = ['语文','数学','英语']
df = pd.DataFrame(data=data, index=name, columns=columns)
# df.drop(['数学'],axis=1,inplace=True)                     #删除某列
# df.drop(columns='数学',inplace=True)                      #删除columns为“数学”的列
# df.drop(labels='数学', axis=1,inplace=True)              #删除列标签为“数学”的列
# df.drop(['明日','二月二'],inplace=True)                   #删除某行
# df.drop(index='明日',inplace=True)                        #删除index为“明日”的行
# df.drop(labels='明日', axis=0,inplace=True)              #删除行标签为“明日”的行
print(df)
在这里插入图片描述
在这里插入图片描述

🦋2.2 删除满足条件的行

代码语言:python
代码运行次数:0
运行
复制
import pandas as pd
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.east_asian_width', True)
data = [[110,105,99],[105,88,115],[109,120,130],[112,115,140]]
name = ['明日','七月流火','高袁圆','二月二']
columns = ['语文','数学','英语']
df = pd.DataFrame(data=data, index=name, columns=columns)
# df.drop(index=df[df['数学'].isin([88])].index[0],inplace=True)    #删除“数学”包含88的行
# df.drop(index=df[df['语文']<110].index[0],inplace=True)           #删除“语文”小于110的行
print(df)
在这里插入图片描述
在这里插入图片描述

🔎3.修改数据

🦋3.1 修改列名

方法一:直接赋值

代码语言:python
代码运行次数:0
运行
复制
df.columns = ['语文(上)', '数学(上)', '英语(上)']
在这里插入图片描述
在这里插入图片描述

方法二:使用rename方法

代码语言:python
代码运行次数:0
运行
复制
df.rename(columns={'语文': '语文(上)', '数学': '数学(上)'}, inplace=True)
在这里插入图片描述
在这里插入图片描述

🦋3.2 修改行名

代码语言:python
代码运行次数:0
运行
复制
df.index = ['1', '2', '3', '4']  # 直接赋值
df.rename({'明日': '1', '七月流火': '2'}, axis=0, inplace=True)  # 使用rename

🦋3.3 修改数据

修改整行

代码语言:python
代码运行次数:0
运行
复制
df.loc['明日'] = [120, 115, 109]  # 修改整行数据
df.loc['明日'] += 10  # 所有值加10

修改整列

代码语言:python
代码运行次数:0
运行
复制
df.loc[:, '语文'] = [115, 108, 112, 118]  # 修改“语文”列所有值

修改单个值

代码语言:python
代码运行次数:0
运行
复制
df.loc['明日', '语文'] = 115  # 修改指定单元格

使用iloc按位置修改

代码语言:python
代码运行次数:0
运行
复制
df.iloc[0, 0] = 115  # 修改第1行第1列
df.iloc[:, 0] = [115, 108, 112, 118]  # 修改第1列所有值

🔎4.查询数据

🦋4.1 查询列数据

代码语言:python
代码运行次数:0
运行
复制
print(df['语文'])  # 通过列名获取数据
print(df.语文)     # 等效方法(列名为有效标识符时)

🦋4.2 查询行数据

代码语言:python
代码运行次数:0
运行
复制
print(df[0:3])  # 获取前3行(包头不包尾)

🦋4.3 查询单个元素

代码语言:python
代码运行次数:0
运行
复制
print(df['数学'][2])        # 获取第3行的“数学”列数据
print(df.loc['高袁圆', '语文'])  # 通过标签获取
print(df.iloc[2, 0])       # 通过位置获取(第3行第1列)

🔎5.关键点总结

  • 增加数据:灵活使用直接赋值、locinsert方法。
  • 删除数据:通过drop指定行/列标签或条件。
  • 修改数据:通过标签(loc)或位置(iloc)精准操作。
  • 查询数据:按列、行或单个元素灵活获取数据。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🚀前言
  • 🚀一、DataFrame数据的增删改查
    • 🔎1.增加数据
      • 🦋1.1 按列增加
      • 🦋1.2 按行增加
    • 🔎2.删除数据
      • 参数说明:
      • 🦋2.1 删除行列
      • 🦋2.2 删除满足条件的行
    • 🔎3.修改数据
      • 🦋3.1 修改列名
      • 🦋3.2 修改行名
      • 🦋3.3 修改数据
    • 🔎4.查询数据
      • 🦋4.1 查询列数据
      • 🦋4.2 查询行数据
      • 🦋4.3 查询单个元素
    • 🔎5.关键点总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档