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

pandas读取EXCEL列名重复问题解决——pandas设置多行为列名(多层列名)

问题呈现

这是我在问答区看到的一个问题。
问:在python中使用pandas读取Excel数据,重复数据被区分了,如何做到重复数据不被区分?
在这里插入图片描述
在这里插入图片描述

解决思路

很明显,这是pandas读取excel文件时列名设置问题,我第一时间想到的就是pandas.read_excel()是否能读取多行为列名

在pandas.read_excel()里有这样一个参数header,官方文档中这样描述:
在这里插入图片描述
header:默认为0,接受整数和整数列表。
按照下标(第一行下标为0)读取为列名。如果传入整数列表,就将根据下标为这些整数的行生成多层索引。header=None表示没有列名。

解决方法已经呼之欲出了。

解决方法

参数header=[0, 1],将前两行作为多层索引
df.loc[:, ‘M1’].loc[:, ‘V1’],读取某列时逐层选定

测试数据如下:

在这里插入图片描述

代码实现

import pandas as pddf = pd.read_excel(r"test.xlsx", header=[0, 1]) # header=[0, 1]表示根据第1和第二行值生成多层索引,这里为两层print('读取的列名有两层。第一层中有M1和M2两个列名,第二层中分别包含了V1和V2')
print(df)M1V1 = df.loc[:, 'M1'].loc[:, 'V1']print('读取时要逐次选定列名,比如要读取列名为M1下的V1列。先选定列名为M1,然后再选定列名为V1')
print(M1V1)

运行效果

读取的列名有两层。第一层中有M1和M2两个列名,第二层中分别包含了V1和V2Unnamed: 0_level_0 M1     M2    Unnamed: 0_level_1 V1 V2  V1  V2
0                 J1  2  1  11  23
1                 J2  1  2   9  23
读取时要逐次选定列名,比如要读取列名为M1下的V1列。先选定列名为M1,然后再选定列名为V1
0    2
1    1
Name: V1, dtype: int64

完美解决,对你有帮助的话记得收藏哦~

http://www.lryc.cn/news/19397.html

相关文章:

  • CMake常用语法
  • Java知识复习(一)基础知识
  • springboot+vue.js校园车辆用车预约管理系统
  • 【 K8s 源码之调度学习】Pod 间亲和性和反亲和性的源码分析
  • 计及绿证交易及碳排放的含智能楼宇微网优化调度(Matlab代码实现)
  • 场景扩展,体验升级 | DBMotion新增无公网数据库迁移、支持监控报警等多项功能
  • 【正点原子FPGA连载】第十五章eMMC读写测试实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
  • i2c子系统
  • 【K3s】第17篇 Helm版本和支持的Kubernetes版本对照表
  • 如何自己搭建一个ai画图系统? 从0开始云服务器部署novelai
  • SpringSecurity过滤请求导致的系统bug
  • css\js\vue知识点
  • 在vue项目中使用video.js实现视频播放和视频进度条打点
  • 【代码训练营】day41 | 01背包问题 416. 分割等和子集
  • linux网络编程-多进程实现TCP并发服务器
  • C语言的学习小结——数组
  • HTB-Photobomb
  • 【LSTM】2 多因素单步骤预测
  • ChatGPT从下游应用“火”到了上游芯片厂,国内谁将受益?
  • 算法单调栈—Java版
  • 在Linux中进行rocketmq及rocketmq控制台安装与配置
  • 2023年全国最新食品安全管理员精选真题及答案4
  • es-07脚本查询
  • JM员工福利与健康平台,企业关怀Always Online
  • 如何使用U-Mail搭建企业邮件服务器?
  • 用规则来搭建团队:写周报不一定是坏事
  • Apollo使用方法
  • 科研快讯 | 14篇论文被信号处理领域顶级国际会议ICASSP录用
  • 设计模式—策略(Strategy)模式
  • STM32 触摸屏移植GUI控制控件