Python读取.xlsx指定行列

本文以Python3.9.1读取data.xlsx中包含的西瓜数据集3.0数据为例,数据集如下:

编号色泽根蒂敲声纹理脐部触感密度含糖率好瓜1青绿蜷缩浊响清晰凹陷硬滑0.6970.46是2乌黑蜷缩沉闷清晰凹陷硬滑0.7740.376是3乌黑蜷缩浊响清晰凹陷硬滑0.6340.264是4青绿蜷缩沉闷清晰凹陷硬滑0.6080.318是5浅白蜷缩浊响清晰凹陷硬滑0.5560.215是6青绿稍蜷浊响清晰稍凹软粘0.4030.237是7乌黑稍蜷浊响稍糊稍凹软粘0.4810.149是8乌黑稍蜷浊响清晰稍凹硬滑0.4370.211是9乌黑稍蜷沉闷稍糊稍凹硬滑0.6660.091否10青绿硬挺清脆清晰平坦软粘0.2430.267否11浅白硬挺清脆模糊平坦硬滑0.2450.057否12浅白蜷缩浊响模糊平坦软粘0.3430.099否13青绿稍蜷浊响稍糊凹陷硬滑0.6390.161否14浅白稍蜷沉闷稍糊凹陷硬滑0.6570.198否15乌黑稍蜷浊响清晰稍凹软粘0.360.37否16浅白蜷缩浊响模糊平坦硬滑0.5930.042否17青绿蜷缩沉闷稍糊稍凹硬滑0.7190.103否

代码段:

一、读取工作表内容(.xlsx转化为DataFrame)

  1. 导入pandas库,读取工作表数据
import pandas as pd
df = pd.read_excel(r'E:\Aownplan\data.xlsx')

备注: r 是为了读取文件路径中 \ 字符, 防止转义

此处利用pandas库的 read_excel 函数读取文件,获取到的函数返回值类型为DataFrame,后续所有的操作均是基于DataFrame的数据操作方法进行。

二、获取指定行指定列数据(DataFrame转化为numpy.ndarray)

  1. 获取整个工作表数据
data=df.values
print("读取整个工作表的数据:\n{0}".format(data))
  1. 获取某一行数据
data=df.iloc[0].values
print("读取指定行的数据:\n{0}".format(data))
  1. 获取多行数据
data=df.head().values
print("获取工作表前5行数据:\n{0}".format(data))

data=df.iloc[[1,2]].values
print("读取指定多行的数据:\n{0}".format(data))

data=df.sample(3).values
print("获取随机多行数据:\n{0}".format(data))
  1. 获取指定单元格数据
data=df.iloc[1,2]
print("读取指定某行某列(单元格)的数据:\n{0}".format(data))
  1. 获取指定列数据
print("输出值\n",df['含糖率'].values)
  1. 获取指定多列数据
data=df.loc[:,['敲声','纹理']].values
print("读取指定列的数据:\n{0}".format(data))
  1. 获取指定多行多列数据
data=df.loc[[1,2],['密度','含糖率']].values
print("读取指定多行多列的数据:\n{0}".format(data))
  1. 获取行号和列标题
print("输出行号列表",df.index.values)
print("输出列标题",df.columns.values)

三、数据处理(numpy.ndarray转化为list/set/dict)

(1) 转化为列表list

以上通过.values方法获取到的data值,均为二维值数组(numpy.ndarray)类型,在使用时如果需要转换为列表类型,可使用.tolist()方法,如:

data=df.values.tolist()

此时的输出为:

Python读取.xlsx指定行列
此时的data为list类型,其中每一行数据均为一个列表,多个列表合并为一个二维列表,此时要获取指定行(m)的数据,使用 data[m],获取指定单元格数据,使用data[m][n]。

(2) 转化为集合set

在分析时,若想获取某一列的数据集合,则可以先提取该列数据,然后使用set()函数将其转化为集合即可,如当前为获取敲声的类型,进行如下操作:

data=df['敲声'].values
print(set(data))

此时的输出:

{'清脆', '浊响', '沉闷'}

获取除编号,密度,含糖率外所有列的集合:

titles = df.columns.values
for title in titles:
    if title != '编号' and title != '密度' and title != '含糖率':
        key = df[title].values
        values = set(key)
        print(title,':',values)

输出:

色泽 : {'乌黑', '青绿', '浅白'}
根蒂 : {'蜷缩', '稍蜷', '硬挺'}
敲声 : {'清脆', '浊响', '沉闷'}
纹理 : {'清晰', '稍糊', '模糊'}
脐部 : {'平坦', '稍凹', '凹陷'}
触感 : {'硬滑', '软粘'}
好瓜 : {'是', '否'}

(3) 转化为字典dict
如果需要读取某一行的数据为字典,可进行如下操作:

data=df.iloc[0].values
title=df.columns.values
a=zip(title,data)
print(dict(a))

输出:

{'编号': 1, '色泽': '青绿', '根蒂': '蜷缩', '敲声': '浊响',     '纹理': '清晰', '脐部': '凹陷', '触感': '硬滑', '密度': 0.697,  '含糖率': 0.46, '好瓜': '是'}

获取除编号,密度,含糖率外所有列的字典:

titles = df.columns.values
adict=dict()
for title in titles:
    if title != '编号' and title != '密度' and title != '含糖率':
        key = df[title].values
        adict[title]=set(key)
print(adict)

输出:

{'色泽': {'乌黑', '青绿', '浅白'}, '根蒂': {'蜷缩', '稍蜷', '硬挺'}, '敲声': {'清脆', '浊响', '沉闷'}, '纹理': {'清晰', '稍糊', '模糊'},  '脐部': {'平坦', '稍凹', '凹陷'}, '触感': {'硬滑', '软粘'},  '好瓜': {'是', '否'}}

参考文章:
[1]. Python利用pandas处理Excel数据的应用

Original: https://blog.csdn.net/L_Jane_H/article/details/125586000
Author: L_Jane_H
Title: Python读取.xlsx指定行列

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/737885/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【Gunicorn】Gunicorn安装&相关配置&脚本

    Gunicorn介绍 官网官方文档 Gunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器。从Ruby的独角兽(Unicorn )项目移植该Gunicorn服务…

    Python 2023年8月11日
    047
  • Django框架的基本应用

    1. Django框架的基本介绍 Django是一个开放源代码的Web应用框架,由Python语言写成,采用了MVT的框架模式,即模型M、视图V和模板T。 MVT全名是ModelV…

    Python 2023年8月6日
    031
  • 图数据挖掘:基于概率的流行病模型

    1 导引 在上一篇博客《图数据挖掘:网络中的级联行为》中介绍了用基于决策的模型来对级联行为进行建模,该模型是基于效用(Utility)的且是是确定性的,主要关注于单个节点如何根据其…

    Python 2023年10月25日
    035
  • Django 之视图层

    Django 的视图层由两种形式构成:FBV和CBV FBV基于函数的视图(Function base view)我们之前一直介绍的都是FBV CBV基于类的视图 (Class b…

    Python 2023年11月1日
    043
  • 拯救pandas计划(16)——将DataFrame的奇偶列位置进行前后对调

    拯救pandas计划(16)——将DataFrame的奇偶列位置进行前后对调 * – / 数据需求 – / 需求拆解 – / 需求处理 &#82…

    Python 2023年8月9日
    057
  • Pytest + request + allure 接口自动化

    记录下自己第一次部署pytest框架的过程 本人是一个新人小白,每天搜索大量的资料,从中获取到一些有用的知识点及踩坑指南,今天分享给各位 一、框架的搭建,一旦框架搭建好了之后,后面…

    Python 2023年9月11日
    036
  • 快慢指针法?

    力扣题目:27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使…

    Python 2023年11月6日
    036
  • python包合集-shutil

    * – fsrc:源文件 – fdst:复制至fdst文件 – length:缓冲区大小,即fsrc每次读取的长度 3、代码演示 f1 = op…

    Python 2023年6月9日
    068
  • [SDR] GNU Radio 系列教程(一) —— 什么是 GNU Radio

    1、GNU Radio 是什么 2、我为什么要用 GNU Radio 3、数字信号处理 3.1 一点信号理论 3.2 将数字信号处理应用于无线电传输 4、基于流程图的模块化数字信号…

    Python 2023年6月16日
    0101
  • Matplotlib

    引入包: import numpy as np import matplotlib.pyplot as plt 可省略plt.show(): %matplotlib inline …

    Python 2023年9月6日
    047
  • Pandas库学习

    一、Pandas是什么 Pandas 是 Python 语言的一个扩展程序库,用于数据分析。Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算…

    Python 2023年8月18日
    061
  • NLP实践!文本语法纠错模型实战,搭建你的贴身语法修改小助手 ⛵

    💡 作者:韩信子@ShowMeAI📘 深度学习实战系列:https://www.showmeai.tech/tutorials/42📘 自然语言处理实战系列:https://www…

    Python 2023年10月24日
    036
  • 手把手教你使用LabVIEW OpenCV dnn实现物体识别(Object Detection)含源码

    今天和大家一起分享如何使用LabVIEW调用pb模型实现物体识别,本博客中使用的智能工具包可到主页置顶博客 1、物体识别的概念 物体识别也称 目标检测,目标检测所要解决的问题是目标…

    Python 2023年10月25日
    047
  • Cora 数据集介绍

    数据集包含以下文件: ind.cora.x : 训练集节点特征向量,保存对象为:scipy.sparse.csr.csr_matrix,实际展开后大小为: (140, 1433) …

    Python 2023年10月28日
    048
  • 爬虫

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 弹尽粮绝,会员救园:…

    Python 2023年10月30日
    022
  • Linux系统安装并配置nginx实现多服务同一端口

    基本诉求是项目要实现并发,因为用了深度学习框架,tornado服务无法通过以下方式多进程开启服务, python;gutter:true; http_server.bind(por…

    Python 2023年10月26日
    068
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球