

💎【行业认证·权威头衔】
✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家
✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主
✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者
🏆【荣誉殿堂】
🎖 连续三年蝉联"华为云十佳博主"(2022-2024)
🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)
🎖 十余个技术社区年度杰出贡献奖得主
📚【知识宝库】
覆盖全栈技术矩阵:
◾ 编程语言:.NET/Java/Python/Go/Node...
◾ 移动生态:HarmonyOS/iOS/Android/小程序
◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙
◾ 游戏开发:Unity3D引擎深度解析
在数据分析的过程中,灵活地对数据进行增删改查(CRUD操作)是至关重要的。Pandas库中的DataFrame对象作为一种强大的数据结构,为我们提供了高效、直观的数据处理能力。无论是数据清洗、预处理,还是后续的分析与可视化,掌握DataFrame的增删改查操作,都是每位数据分析师必不可少的技能。
本文将详细介绍如何在DataFrame中进行数据的增、删、改、查操作。我们将通过具体的示例,帮助你理解如何灵活地管理和操控数据,使你的分析工作更加高效和顺畅。
方法一:直接赋值
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属性添加列
df.loc[:, '物理'] = [88, 79, 60, 50]  # 等效于直接赋值方法三:使用insert插入列
wl = [88, 79, 60, 50]
df.insert(1, '物理', wl)  # 在第1列后插入新列
print(df)输出:
      语文  物理  数学   英语
明日    110   88  105   99
七月流火 105   79   88  115
高袁圆   109   60  120  130
二月二   112   50  115  140方法一:使用loc添加单行
df.loc['钱多多'] = [100, 120, 99]  # 添加一行数据
print(df)输出:
        语文   数学   英语
明日      110  105    99
七月流火   105   88   115
高袁圆    109  120   130
二月二    112  115   140
钱多多    100  120    99方法二:使用concat添加多行
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)输出:
        语文   数学   英语
明日      110  105    99
七月流火   105   88   115
高袁圆    109  120   130
二月二    112  115   140
钱多多    100   99    98
童年      123  142   139
无名      138   60    99DataFrame.drop() 方法
drop()方法用于删除DataFrame中的行或列。语法格式如下:
DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')index或columns,则labels是多余的。axis=0:表示按行删除,默认值为0。axis=1:表示按列删除。None。如果指定了该参数,labels可以省略。None。如果指定了该参数,labels可以省略。level=0:表示按第1级索引删除整行。level=1:表示按第2级索引删除整行。None。False(默认值):返回一个新的DataFrame对象,原DataFrame不受影响。True:原DataFrame会被直接修改,不会返回新的DataFrame。raise(默认值):如果指定的标签不存在,则抛出错误。ignore:忽略错误,不会抛出异常。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)
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)
方法一:直接赋值
df.columns = ['语文(上)', '数学(上)', '英语(上)']
方法二:使用rename方法
df.rename(columns={'语文': '语文(上)', '数学': '数学(上)'}, inplace=True)
df.index = ['1', '2', '3', '4']  # 直接赋值
df.rename({'明日': '1', '七月流火': '2'}, axis=0, inplace=True)  # 使用rename修改整行
df.loc['明日'] = [120, 115, 109]  # 修改整行数据
df.loc['明日'] += 10  # 所有值加10修改整列
df.loc[:, '语文'] = [115, 108, 112, 118]  # 修改“语文”列所有值修改单个值
df.loc['明日', '语文'] = 115  # 修改指定单元格使用iloc按位置修改
df.iloc[0, 0] = 115  # 修改第1行第1列
df.iloc[:, 0] = [115, 108, 112, 118]  # 修改第1列所有值print(df['语文'])  # 通过列名获取数据
print(df.语文)     # 等效方法(列名为有效标识符时)print(df[0:3])  # 获取前3行(包头不包尾)print(df['数学'][2])        # 获取第3行的“数学”列数据
print(df.loc['高袁圆', '语文'])  # 通过标签获取
print(df.iloc[2, 0])       # 通过位置获取(第3行第1列)loc和insert方法。drop指定行/列标签或条件。loc)或位置(iloc)精准操作。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。