DataFrame索引功能详解
DataFrame的索引功能是其核心特性之一提供了灵活高效的数据访问方式。Pandas提供了多种索引机制包括标签索引、位置索引、布尔索引等。下面详细介绍DataFrame的各种索引功能1. 基本索引方法1.1[]操作符索引列索引最常用的方式通过列名获取列数据importpandasaspd dfpd.DataFrame({A:[1,2,3],B:[a,b,c],C:[4.5,5.5,6.5]})col_adf[A]# 获取A列返回Series多列选择通过列表选择多列cols_abdf[[A,B]]# 返回包含A、B列的DataFrame1.2 点号(.)属性索引不推荐可以通过点号访问列但有局限性col_adf.A# 等同于df[A]缺点列名不能与DataFrame方法或属性同名如’count’, sum’等列名包含空格或特殊字符时无法使用不支持多列选择2. 高级索引方法2.1loc[]- 标签索引Label-based indexing基于标签的索引包含结束点语法df.loc[row_selection, column_selection]行选择示例# 单行row_1df.loc[1]# 索引为1的行# 行切片rows_0_to_2df.loc[0:2]# 包含索引2的行# 条件选择rows_a_bdf.loc[df[B].isin([a,b])]列选择示例# 单列col_bdf.loc[:,B]# 多列cols_acdf.loc[:,[A,C]]# 行列组合选择subsetdf.loc[1:2,[A,C]]布尔索引# 选择A列大于1且B列等于b的行resultdf.loc[(df[A]1)(df[B]b)]2.2iloc[]- 位置索引Integer-based indexing基于整数位置的索引不包含结束点类似Python切片语法df.iloc[row_position, column_position]基本用法# 单元素elementdf.iloc[1,2]# 第2行第3列# 行选择first_rowdf.iloc[0]# 第一行first_two_rowsdf.iloc[0:2]# 前两行不包含2# 列选择first_coldf.iloc[:,0]# 第一列last_coldf.iloc[:,-1]# 最后一列# 行列组合subsetdf.iloc[1:3,0:2]# 2-3行0-1列2.3at[]和iat[]- 快速访问单个值针对单个值的快速访问性能优于loc和ilocat用于标签索引iat用于位置索引# 获取值value_atdf.at[1,B]# 第2行B列的值value_iatdf.iat[1,1]# 第2行第2列的值位置索引# 设置值df.at[1,B]x# 修改第2行B列的值df.iat[1,1]y# 修改第2行第2列的值3. 特殊索引功能3.1 多级索引MultiIndex创建具有多个索引级别的DataFrame适用于高维数据表示# 创建多级索引DataFramearrays[[A,A,B,B],[1,2,1,2]]indexpd.MultiIndex.from_arrays(arrays,names(letter,number))df_multipd.DataFrame({data:[10,20,30,40]},indexindex)# 多级索引选择df_multi.loc[A]# 选择letter为A的所有行df_multi.loc[(A,1)]# 选择letter为A且number为1的行df_multi.loc[:,data]# 选择data列虽然这里只有一列3.2 交叉索引Cross-section使用xs()方法进行快速交叉索引特别适用于多级索引# 选择letter为A的所有行等价于df_multi.loc[A]df_adf_multi.xs(A)# 选择letter为A且number为1的行df_a1df_multi.xs((A,1))# 或 df_multi.xs(A).xs(1)3.3 布尔索引使用布尔条件筛选数据可以组合多个条件# 单条件df_booldf[df[A]1]# 多条件组合df_bool_multidf[(df[A]1)(df[C]6)]# 使用isin()方法df_isindf[df[B].isin([a,c])]# 使用query()方法更简洁的语法df_querydf.query(A 1 and C 6)3.4 步长索引在loc和iloc中使用步长进行选择# 选择所有行每隔一列df_step_colsdf.iloc[:,::2]# 选择每隔一行所有列df_step_rowsdf.iloc[::2,:]# 标签索引中使用步长df_loc_stepdf.loc[0:2:2,A:C:2]# 从0到2步长2A到C步长24. 索引操作4.1 设置索引# 将现有列设置为索引df_set_indexdf.set_index(B)# 设置多列索引df_set_multi_indexdf.set_index([A,B])# 创建新索引不使用现有列df_new_indexdf.set_index(pd.Index(range(100,103)))4.2 重置索引# 将索引重置为默认整数索引df_resetdf_set_index.reset_index()# 重置索引但不丢弃原索引列df_reset_dropdf_set_index.reset_index(dropFalse)# 重置特定级别的索引多级索引时df_reset_leveldf_set_multi_index.reset_index(levelA)4.3 重新排序索引# 按索引排序df_sorteddf.sort_index()# 按值排序通过某列df_sorted_valuesdf.sort_values(A)# 多级索引排序df_multi_sorteddf_multi.sort_index(level[letter,number])4.4 索引对齐Pandas会自动对齐不同DataFrame的索引进行操作df1pd.DataFrame({A:[1,2,3]},index[a,b,c])df2pd.DataFrame({B:[4,5,6]},index[b,c,d])# 加法操作会自动对齐索引resultdf1df2# 结果中会包含所有索引缺失值为NaN5. 性能考虑选择方法性能比较从快到慢at/iatloc/iloc[]操作符链式索引的陷阱# 不推荐可能产生SettingWithCopyWarningdf[df[A]1][B]0# 推荐方式df.loc[df[A]1,B]0对于大数据集优先考虑iloc进行位置索引使用query()方法可能比布尔索引更高效考虑使用eval()进行复杂计算6. 实际应用示例importpandasaspdimportnumpyasnp# 创建示例DataFramedata{Name:[Alice,Bob,Charlie,David],Age:[25,30,35,40],Salary:[50000,60000,70000,80000],Department:[HR,IT,Finance,IT]}dfpd.DataFrame(data).set_index(Name)# 1. 使用loc选择IT部门员工it_employeesdf.loc[df[Department]IT]# 2. 使用iloc选择前两行first_twodf.iloc[0:2]# 3. 使用at快速访问特定值alice_salarydf.at[Alice,Salary]# 4. 多级索引示例df_multidf.set_index([Department,Age])it_30df_multi.loc[(IT,30)]# 5. 布尔索引组合条件high_earnersdf[(df[Salary]65000)(df[Age]40)]# 6. 使用query方法finance_highdf.query(Department Finance and Salary 65000)# 7. 索引重置和设置df_resetdf.reset_index()# 将Name从索引移回列df_new_indexdf_reset.set_index([Department,Age])# 设置多级索引DataFrame的索引功能非常强大且灵活熟练掌握这些索引方法可以显著提高数据处理效率。在实际应用中应根据具体需求选择合适的索引方法并注意性能优化和避免常见陷阱。

相关新闻

2026年必看!单北斗GNSS变形监测大坝监测推荐榜单,助力安全管理与风险预警

2026年必看!单北斗GNSS变形监测大坝监测推荐榜单,助力安全管理与风险预警

单北斗GNSS变形监测在大坝监测中的应用日益受到重视。其设备通过高精度的位移测量与实时数据传输功能,能够及时捕捉到变形信息,确保安全管理的有效性。多款设备如中海达MS100、华测导航H7和南方测绘MR3等,各自具备独特优势,可满足…

2026/7/3 22:58:23 阅读更多 →
对比一圈后,AI论文工具千笔ai写作 VS 灵感风暴AI,专科生首选

对比一圈后,AI论文工具千笔ai写作 VS 灵感风暴AI,专科生首选

随着人工智能技术的迅猛迭代与普及,AI辅助写作工具已逐步渗透到高校学术写作场景中,成为专科生、本科生、研究生完成毕业论文不可或缺的辅助手段。越来越多面临毕业论文压力的学生,开始依赖各类AI工具简化写作流程、提升创作效率。但与此同时…

2026/5/17 5:28:56 阅读更多 →
定稿前必看!专科生专属降AI平台 —— 千笔·降AI率助手

定稿前必看!专科生专属降AI平台 —— 千笔·降AI率助手

在AI技术日益渗透学术写作的当下,越来越多的专科生开始借助AI工具提升论文写作效率。然而,随着查重系统对AI生成内容的识别能力不断增强,如何有效降低AI率和重复率,已成为毕业论文定稿前最棘手的问题之一。面对市场上琳琅满目的降…

2026/7/3 11:43:27 阅读更多 →

最新新闻

AI规模化落地:从概念验证到生产环境的实践指南

AI规模化落地:从概念验证到生产环境的实践指南

1. 从概念验证到规模化落地的鸿沟 在过去的五年里,我作为AI解决方案架构师参与了超过20家企业的人工智能转型项目。一个令人警醒的数据是:根据Gartner统计,约85%的AI试点项目最终未能实现规模化部署。这个数字背后反映的正是我们今天要探讨的…

2026/7/4 18:33:20 阅读更多 →
STM32F303VE与TC78H653FTG驱动有刷电机方案解析

STM32F303VE与TC78H653FTG驱动有刷电机方案解析

1. 为什么选择TC78H653FTGSTM32F303VE组合驱动有刷电机在工业控制和消费电子领域,直流有刷电机因其结构简单、成本低廉、控制方便等优势,至今仍占据重要地位。但要让这种"古老"的电机发挥出现代化性能,驱动电路和控制器选型尤为关键…

2026/7/4 18:31:20 阅读更多 →
零基础网络渗透学习指南:从TCP/IP到实战靶场的完整路径

零基础网络渗透学习指南:从TCP/IP到实战靶场的完整路径

1. 从零到一:网络渗透学习的本质与心态重塑“零基础入门网络渗透到底要怎么学?” 这个问题背后,是无数对网络安全充满好奇,却又被其神秘感和庞杂知识体系吓退的新手最真实的困惑。我见过太多人,一上来就直奔Kali Linux…

2026/7/4 18:29:19 阅读更多 →
AI开发者工作流选型指南:GLM-5、Kimi、MiniMax等6大模型实战对比

AI开发者工作流选型指南:GLM-5、Kimi、MiniMax等6大模型实战对比

1. 这不是模型对比,是开发者工作流的生存指南 你有没有过这种体验:凌晨两点,手机弹出一条短信——“您的API调用额度已超限,当前计费周期剩余余额:0.37”。你猛坐起来,手抖着打开监控面板,发现一…

2026/7/4 18:29:19 阅读更多 →
Si4732与PIC18F86K90在嵌入式音频系统中的应用与优化

Si4732与PIC18F86K90在嵌入式音频系统中的应用与优化

1. 项目背景与核心组件解析在数字音频处理领域,Si4732和PIC18F86K90的组合堪称黄金搭档。作为一名长期从事嵌入式音频系统开发的工程师,我亲身体验过这对组合带来的音质飞跃。Si4732是Silicon Labs推出的高性能数字调谐收音芯片,而PIC18F86K9…

2026/7/4 18:29:19 阅读更多 →
AD74413R与STM32F303RC硬件设计与SPI通信实现

AD74413R与STM32F303RC硬件设计与SPI通信实现

1. AD74413R与STM32F303RC的硬件协同设计AD74413R是一款四通道软件可配置输入/输出器件,每个通道可独立配置为ADC输入、DAC输出、数字输入或数字输出模式。与STM32F303RC搭配使用时,需要特别注意两者的电气特性和接口匹配。1.1 硬件连接要点SPI接口应采用…

2026/7/4 18:23:18 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻