新闻中心

Pandas 读取 Excel 重复列名处理与数据提取技巧

2025-11-02
浏览次数:
返回列表

Pandas 读取 Excel 重复列名处理与数据提取技巧

当使用 pandas 读取含有重复列名的 excel 文件时,pandas 会自动通过添加后缀(如 .1)来重命名重复列。本文将详细讲解这一自动重命名机制,并指导如何准确地访问和提取这些重命名后的列中的数据,特别是如何获取“第二组”重复列的数据,同时提供将选定数据高效导出为制表符分隔文件的方法。

Pandas 读取 Excel 重复列名机制

在使用 Pandas 的 read_excel 函数处理 Excel 文件时,如果工作表中存在同名的列标题,Pandas 会自动对这些重复的列名进行去重处理。其机制是为第一个出现的列名保留原名,而后续出现的同名列则会在其名称后追加一个递增的数字后缀,以英文句号分隔。例如,如果 Excel 中有三列都名为 ColumnA,Pandas 读取后会将其重命名为 ColumnA、ColumnA.1 和 ColumnA.2。理解这一机制是正确访问重复列数据的关键。

以下是一个加载指定 Excel 文件的示例,该文件包含多个重复列名:

import pandas as pd
import requests
from io import BytesIO

# AISC shapes database URL
url = "https://www.aisc.org/globalassets/product-files-not-searched/" \
      "manuals/aisc-shapes-database-v16.0.xlsx"

# 下载 Excel 文件内容
response = requests.get(url)
data = BytesIO(response.content)

# 将 Excel 文件读取到 DataFrame 中
# 如果工作表名称不是 "Database v16.0",请调整 sheet_name 参数
df = pd.read_excel(data, sheet_name="Database v16.0")

# 打印 DataFrame 的前几行和列名,观察重命名效果
print("DataFrame 前五行预览:")
print(df.head())
print("\nDataFrame 所有列名:")
print(df.columns.tolist())

通过查看 df.columns.tolist() 的输出,可以清晰地看到 AISC_Manual_Label、h, in 和 b, in 等列名在原始 Excel 中重复出现时,已被 Pandas 自动重命名为 AISC_Manual_Label.1、h.1 和 b.1 等。

访问重命名后的“第二组”数据

当目标是获取原始 Excel 中“第二组”或后续组的重复列数据时,我们不再需要尝试跳过或查找原始列名下的第二行,而是直接通过 Pandas 自动生成的重命名列名来访问。例如,要获取原始 Excel 中第二组 AISC_Manual_Label、h, in 和 b, in 的数据,应分别使用 AISC_Manual_Label.1、h.1 和 b.1 作为列名。

# 假设需要从第二组数据中提取 'AISC_Manual_Label', 'h, in', 'b, in'
# 对应的 Pandas 列名为 'AISC_Manual_Label.1', 'h.1', 'b.1'
# 请根据实际的列名重命名情况调整此列表
selected_columns = ["AISC_Manual_Label.1", "h.1", "b.1"]

# 创建一个包含所需列的子 DataFrame
subset_df = df[selected_columns]

# 打印子 DataFrame 的前几行进行验证
print("\n选定的子 DataFrame (第二组数据):")
print(subset_df.head())

高效的数据提取与导出

手动遍历 DataFrame 的行并逐个写入文件虽然可行,但对于大型数据集而言效率低下。Pandas 提供了更高效的向量化操作来选择列并导出数据。DataFrame.to_csv() 方法是一个强大的工具,可以直接将 DataFrame 导出为各种分隔符格式的文件,包括制表符分隔值(TSV)文件。

Musho Musho

AI网页设计Figma插件

Musho 76 查看详情 Musho

要将上面选定的子 DataFrame 导出为制表符分隔的文件,可以这样做:

# 定义输出文件名
output_file_name = "profiles_subset.txt"

# 将子 DataFrame 导出为制表符分隔的 CSV 文件
# sep='\t' 指定使用制表符作为分隔符
# index=False 避免将 DataFrame 的索引写入文件
subset_df.to_csv(output_file_name, sep='\t', index=False)

print(f"\n数据已成功导出到 {output_file_name}")

# 如果需要在不创建文件的情况下打印 TSV 格式的字符串,可以取消注释以下行:
# print("\nTSV 内容预览:")
# print(subset_df.to_csv(sep='\t', index=False))

这种方法不仅代码简洁,而且在处理大量数据时性能远超手动循环。

总结与注意事项

  • 理解 Pandas 的重命名机制: 当 Excel 文件包含重复列名时,Pandas 会自动为其追加 .1, .2 等后缀。这是解决“如何获取第二组数据”问题的关键。
  • 直接访问重命名后的列: 不要尝试通过迭代或复杂逻辑来“跳过”第一行以获取第二组数据,而是直接使用 Pandas 生成的带后缀的列名。
  • 利用 Pandas 内置功能: 对于数据选择和文件导出,优先使用 Pandas 的内置方法(如 df[...] 进行列选择,df.to_csv() 进行导出),它们通常比手动循环更高效、更健壮。
  • 检查列名: 在编写代码之前,最好先加载数据并打印 df.columns.tolist() 来确认实际的列名,以避免因重命名不符而导致的错误。

通过掌握这些技巧,您可以更有效地处理包含重复列名的 Excel 文件,并准确地提取所需的数据。

以上就是Pandas 读取 Excel 重复列名处理与数据提取技巧的详细内容,更多请关注其它相关文章!


# 工具  # 专业的营销推广是什么  # seo新思维  # 关键词排名渠道哪种好  # 天河网站的优化  # 什么是网站建设优化建站  # 网站地图对seo作用  # 软文营销推广哪家好  # 加载  # 流式  # 这是  # 几行  # 跳过  # 命名为  # 所需  # 这一  # 是一个  # 重命名  # ai  # csv  # excel  # seo增长  # 金花推广营销  # 关键词排名价钱 s 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 服务端验证_j*ascript输入检查  Python实时数据流中的动态最值查找策略  如何在J*a中使用Locale处理多语言环境  必由学在线入口 必由学网页版快速登录入口  Win11蓝牙耳机断连怎么解决 Win11蓝牙设置重新配对与驱动更新【技巧】  sublime怎么格式化代码_sublime代码美化与一键排版插件配置  Python字典中优雅地迭代剩余元素的方法  Archive of Our Own官网直达 AO3最新可用地址一览  谷歌google账号注册详细步骤 谷歌账号注册官方教程  Word2013如何插入视频和音频媒体_Word2013媒体插入的多媒体支持  谷歌google账号怎么注册账号 谷歌账号注册官方流程  蛙漫漫画官网在线入口 蛙漫全本漫画免费阅读平台  小米汽车11月交付量突破40000台!雷军:将继续努力  win11如何加载ICC颜色配置文件 Win11校色文件安装与显示器色彩管理【指南】  CSS实现侧边栏导航项全宽圆角悬停背景效果  Go语言中Map存储的结构体如何调用指针方法:深入解析与实践  Windows 11怎么彻底关闭定位_Windows 11服务中禁用Geolocation  如何在CSS中使用visited与link控制链接颜色_visited link伪类配合  蛙漫移动版在线看 蛙漫手机浏览器直达入口  Node.js中HTML按钮与J*aScript函数交互的正确姿势  Python中如何避免重复条件判断:利用数据结构实现动态逻辑  VS Code远程开发时如何处理文件权限问题  AO3官方镜像站点汇总 AO3同人作品网页版直达链接  Golang如何优化CPU绑定任务分配策略_Golang CPU任务分配优化实践  PHP中高效并行检查多链接状态的教程  c++如何使用chrono库处理时间_c++标准库时间与日期操作  包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接  C++如何操作注册表_Windows平台下C++读写注册表的API函数详解  Surface怎么安装系统 微软Surface Pro U盘重装win11教程  《刺客信条:影》PS5 Pro和Switch 2画面对比  J*aScript动态修改指定div内所有a标签样式指南  AI抖音网页版免费视频入口 AI抖音网页端最新视频实时观看  PySpark中从现有列右侧提取可变长度字符创建新列的教程  知音漫客官网漫画下载_知音漫客网页版阅读记录  小米14应用无法联网原因分析_小米14网络权限修复  处理嵌套交互式控件:前端可访问性指南  Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法  必由学官网快捷入口 必由学网页版在线学习平台  快手官方唯一登录入口 谨防山寨钓鱼网站  绝地鸭卫平a核爆刀流玩法攻略  TikTok国际版网页端快速入口 TikTok全球版短视频浏览教程  J*a 递归快速排序中静态变量的状态管理与陷阱  如何使用 Excel 发布器与 Power BI 分享 Excel 洞察  漫蛙2漫画入口 漫蛙正版网页漫画直达网址  如何在低配置电脑上搭建轻量级J*a环境_占用更小的环境选择技巧  如何修改开机登录密码_Windows账户安全设置超详细教程【必学】  天眼查企业查询官网入口 天眼查官方网页版查询  mysql通配符支持数字匹配吗_mysql通配符能否用于数字匹配的解析  蛙漫2台版漫画地址 Manwa2正版网页版链接  圆通快递查询实时追踪 圆通物流包裹状态快速查看 

搜索