当前位置: 首页 > news >正文

day21 学习笔记

文章目录

  • 前言
  • 一、删除数据
  • 二、索引操作
    • 1.loc方法
    • 2.iloc方法
  • 三、添加数据
    • 1.loc方法添加数据
    • 2.concat方法拼接数据
  • 四、重置索引


前言

通过今天的学习,我掌握了对Pandas对象数据元素进行增删操作以及重置索引的操作


一、删除数据

  • DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=‘raise’)
  • inplace参数默认情况下,drop() 不会修改原 DataFrame,而是返回一个新的DataFrame
data = {'one': pd.Series(data=[1, 2, 3], index=['a', 'b', 'c']),
        'two': pd.Series(data=[1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(data)
print(df)

# 删除列
df1 = df.drop(index="a")
df2 = df.drop(labels="a",axis=0) #labels和axis参数需要搭配使用

# 删除行
df1 = df.drop(columns="one")
df2 = df.drop(labels="one",axis=1)

# 直接修改
df.drop(index="a",inplace=True) #这里修改了df

tips:labels参数需要和axis参数搭配使用,而单独使用index,columns可以直接删除对应的行和列

二、索引操作

1.loc方法

  • DataFrame.loc[row_indexer, column_indexer]
  • 使用行,列索引而非下标作为参数
data = {
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
}
df = pd.DataFrame(data, index=['a', 'b', 'c', 'd'])

print(df.loc['a'])  # 选择行标签为 'a' 的行
print(df.loc['a':'c'])  # 选择行标签从 'a' 到 'c' 的行
print(df.loc['a', 'B'])  # 选择行标签为 'a',列标签为 'B' 的元素
print(df.loc[['a','c'], ['A','C']])  # 选择多行数据
print(df.loc['a':'c','A':'C']) #使用切片选择多行
print(df.loc[...,"A":"B"])

tips:注意选择多行数据和使用切片选择多行使用上有差别

2.iloc方法

  • DataFrame.iloc[row_indexer, column_indexer]
  • 与loc方法的区别为:使用下标而非行,列索引
print(df.iloc[0])
print(df.iloc[0:2])
print(df.iloc[1,1])
print(df.iloc[1:3,0:2])
print(df.iloc[[1,3],[0,2]])

三、添加数据

1.loc方法添加数据

data = {
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
}
df = pd.DataFrame(data, index=['a', 'b', 'c', 'd'])

# loc方法添加行
df.loc['e'] = [17, 18, 19]

tips:iloc方法添加行会报错

2.concat方法拼接数据

  • pd.concat(objs, axis=0, join=‘outer’, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)
  • axis:指定连接的轴
  • join:指定连接方式,‘outer’ 表示并集(默认),‘inner’ 表示交集
  • ignore_index:如果为 True,则忽略原始索引并生成新的索引
df1 = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

df2 = pd.DataFrame({
    'A': [7, 8],
    'B': [10, 11],
    'C': [12,13]
})

result = pd.concat([df1, df2], axis=0,ignore_index=True,join="inner")
  • concat拼接Series和Dataframe
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

series = pd.Series([7, 8, 9], name='C')
re = pd.concat([df,series],axis=0)

四、重置索引

  • DataFrame.reindex(labels=None, index=None, columns=None, axis=None, method=None, copy=True, level=None, fill_value=np.nan, limit=None, tolerance=None)
  • 可以重置索引,也可以添加新的行列,默认填充值为None
  • method:用于填充缺失值的方法
  • fill_value:用于填充缺失值的值
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])

new_index = ['a', 'c', 'b', 'd']
df_reindexed = df.reindex(index=new_index,fill_value=666)

new_columns = ['A', 'C', 'B', 'D']
df_reindexed = df.reindex(columns=new_columns,fill_value=666)

THE END

http://www.dtcms.com/a/109206.html

相关文章:

  • 【SPP】蓝牙链路控制(LC)在SPP中互操作性深度解析
  • Cron表达式
  • 什么是混杂模式?为什么 macvlan 依赖它
  • B2B2C商城系统开发:从规划到上线的全流程指南
  • 函数柯里化(Currying)介绍(一种将接受多个参数的函数转换为一系列接受单一参数的函数的技术)
  • 数字孪生在智慧城市中的前端呈现与 UI 设计思路
  • CentOS 7 镜像源失效解决方案(2025年)
  • 【Mysql】之索引详解
  • 游戏无法启动?XINPUT1_3.dll 丢失的终极解决方案
  • 国产替代新选择:CCLink IE与EtherCAT网关在制药行业的应用,配置详解
  • python之 “__init__.py” 文件
  • DeepSeek-R1 面试题汇总
  • SAP-ABAP:SAP ABAP UPDATE 语句用法详解
  • 如何像母语一样学习英语
  • VMware ESXi:企业级虚拟化平台详解
  • MySQL-- 函数(单行函数): 日期和时间函数
  • Linux内核TCP/IP协议栈中的设计模式:从面向对象到系统级软件的跨界实践
  • 数据结构——顺序表
  • 思维链(Chain-of-Thought, CoT)与强化学习区别
  • Java基础之反射的基本使用
  • linux命令-find指令
  • 卫星升空织密天网,卫星电话架起天地一体通信桥梁
  • 数据结构与算法——单链表的实现及增、插、删、查、印、毁
  • 【c++深入系列】:类与对象详解(中)
  • Golang定时任务管理(中文日志+防重复执行)
  • React 项目使用 pdf.js 及 Elasticpdf 教程
  • lvgl避坑记录
  • lodash库介绍(一个现代JavaScript实用工具库,提供模块化、性能优化和额外功能)JavaScript库(防抖、节流、函数柯里化)JS库
  • 每日一题洛谷P8664 [蓝桥杯 2018 省 A] 付账问题c++
  • 【C++】nlohmann::json 配置加载技术实践:从基础到高级应用