0

0

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

碧海醫心

碧海醫心

发布时间:2025-11-02 14:12:26

|

661人浏览过

|

来源于php中文网

原创

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)文件。

NeoAgent
NeoAgent

销售易推出的AI‑CRM智能体平台

下载

要将上面选定的子 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 文件,并准确地提取所需的数据。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

54

2025.12.04

excel对比两列数据异同
excel对比两列数据异同

Excel作为数据的小型载体,在日常工作中经常会遇到需要核对两列数据的情况,本专题为大家提供excel对比两列数据异同相关的文章,大家可以免费体验。

1395

2023.07.25

excel重复项筛选标色
excel重复项筛选标色

excel的重复项筛选标色功能使我们能够快速找到和处理数据中的重复值。本专题为大家提供excel重复项筛选标色的相关的文章、下载、课程内容,供大家免费下载体验。

407

2023.07.31

excel复制表格怎么复制出来和原来一样大
excel复制表格怎么复制出来和原来一样大

本专题为大家带来excel复制表格怎么复制出来和原来一样大相关文章,帮助大家解决问题。

562

2023.08.02

excel表格斜线一分为二
excel表格斜线一分为二

在Excel表格中,我们可以使用斜线将单元格一分为二。本专题为大家带来excel表格斜线一分为二怎么弄的相关文章,希望可以帮到大家。

1243

2023.08.02

excel斜线表头一分为二
excel斜线表头一分为二

excel斜线表头一分为二的方法有使用合并单元格功能方法、使用文本框功能方法、使用自定义格式方法。本专题为大家提供excel斜线表头一分为二相关的各种文章、以及下载和课程。

368

2023.08.02

绝对引用的输入方法
绝对引用的输入方法

绝对引用允许在公式中引用一个固定的单元格,而不会随着公式的复制和粘贴而改变引用的单元格。本专题为大家提供绝对引用相关内容的文章,大家可以免费体验。

4522

2023.08.09

java导出excel
java导出excel

在Java中,我们可以使用Apache POI库来导出Excel文件。本专题提供java导出excel的相关文章,大家可以免费体验。

408

2023.08.18

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

25

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 13.5万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号