欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何使用Python讀取.xlsx指定行列

 更新時(shí)間:2022年09月22日 15:41:56   作者:L_Jane_H  
讀取xlsx的整列數(shù)據(jù)很容易,但是要讀取指定sheet的指定列,這個(gè)相信大多數(shù)程序員都不會(huì),下面這篇文章主要給大家介紹了關(guān)于如何使用Python讀取.xlsx指定行列的相關(guān)資料,需要的朋友可以參考下

引言

本文以Python3.9.1讀取data.xlsx中包含的西瓜數(shù)據(jù)集3.0數(shù)據(jù)為例,數(shù)據(jù)集如下:

編號(hào)色澤根蒂敲聲紋理臍部觸感密度含糖率好瓜
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

代碼段:

一、讀取工作表內(nèi)容(.xlsx轉(zhuǎn)化為DataFrame)

導(dǎo)入pandas庫,讀取工作表數(shù)據(jù)

import pandas as pd
df = pd.read_excel(r'E:\Aownplan\data.xlsx')#默認(rèn)讀取工作簿中第一個(gè)工作表,默認(rèn)第一行為表頭

備注:r是為了讀取文件路徑中\字符,防止轉(zhuǎn)義。

此處利用pandas庫的 read_excel 函數(shù)讀取文件,獲取到的函數(shù)返回值類型為DataFrame,后續(xù)所有的操作均是基于DataFrame的數(shù)據(jù)操作方法進(jìn)行。

二、獲取指定行指定列數(shù)據(jù)(DataFrame轉(zhuǎn)化為numpy.ndarray)

獲取整個(gè)工作表數(shù)據(jù)

data=df.values#獲取整個(gè)工作表數(shù)據(jù)
print("讀取整個(gè)工作表的數(shù)據(jù):\n{0}".format(data))

獲取某一行數(shù)據(jù)

data=df.iloc[0].values#0表示第一行,不包含表頭
print("讀取指定行的數(shù)據(jù):\n{0}".format(data))

獲取多行數(shù)據(jù)

data=df.head().values#head()默認(rèn)讀取前5行數(shù)據(jù)(不包含表頭)
print("獲取工作表前5行數(shù)據(jù):\n{0}".format(data))

data=df.iloc[[1,2]].values#讀取指定多行,在iloc[]里面嵌套列表指定行數(shù)
print("讀取指定多行的數(shù)據(jù):\n{0}".format(data))

data=df.sample(3).values#讀取df中隨機(jī)3行數(shù)據(jù)(3個(gè)樣本)
print("獲取隨機(jī)多行數(shù)據(jù):\n{0}".format(data))

獲取指定單元格數(shù)據(jù)

data=df.iloc[1,2]#讀取索引為[1, 2]的值,這里不需要嵌套列表
print("讀取指定某行某列(單元格)的數(shù)據(jù):\n{0}".format(data))

獲取指定列數(shù)據(jù)

print("輸出值\n",df['含糖率'].values)

獲取指定多列數(shù)據(jù)

data=df.loc[:,['敲聲','紋理']].values#讀所有行的敲聲以及紋理列的值,這里需要嵌套列表
print("讀取指定列的數(shù)據(jù):\n{0}".format(data))

獲取指定多行多列數(shù)據(jù)

data=df.loc[[1,2],['密度','含糖率']].values#讀取第一行第二行的密度以及含糖率列的值,這里需要嵌套列表
print("讀取指定多行多列的數(shù)據(jù):\n{0}".format(data))

獲取行號(hào)和列標(biāo)題

print("輸出行號(hào)列表",df.index.values)
print("輸出列標(biāo)題",df.columns.values)

三、數(shù)據(jù)處理(numpy.ndarray轉(zhuǎn)化為list/set/dict)

(1) 轉(zhuǎn)化為列表list

以上通過.values方法獲取到的data值,均為二維值數(shù)組(numpy.ndarray)類型,在使用時(shí)如果需要轉(zhuǎn)換為列表類型,可使用.tolist()方法,如:

data=df.values.tolist()

此時(shí)的輸出為:

此時(shí)的data為list類型,其中每一行數(shù)據(jù)均為一個(gè)列表,多個(gè)列表合并為一個(gè)二維列表,此時(shí)要獲取指定行(m)的數(shù)據(jù),使用 data[m],獲取指定單元格數(shù)據(jù),使用data[m][n]。

(2) 轉(zhuǎn)化為集合set

在分析時(shí),若想獲取某一列的數(shù)據(jù)集合,則可以先提取該列數(shù)據(jù),然后使用set()函數(shù)將其轉(zhuǎn)化為集合即可,如當(dāng)前為獲取敲聲的類型,進(jìn)行如下操作:

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

此時(shí)的輸出:

{'清脆', '濁響', '沉悶'}

獲取除編號(hào),密度,含糖率外所有列的集合:

titles = df.columns.values
for title in titles:
    if title != '編號(hào)' and title != '密度' and title != '含糖率':
        key = df[title].values
        values = set(key)
        print(title,':',values)

輸出:

色澤 : {'烏黑', '青綠', '淺白'}
根蒂 : {'蜷縮', '稍蜷', '硬挺'}
敲聲 : {'清脆', '濁響', '沉悶'}
紋理 : {'清晰', '稍糊', '模糊'}
臍部 : {'平坦', '稍凹', '凹陷'}
觸感 : {'硬滑', '軟粘'}
好瓜 : {'是', '否'}

(3) 轉(zhuǎn)化為字典dict

如果需要讀取某一行的數(shù)據(jù)為字典,可進(jìn)行如下操作:

data=df.iloc[0].values#獲取某行數(shù)據(jù)
title=df.columns.values#獲取列標(biāo)題
a=zip(title,data)#將其壓縮為一個(gè)元組
print(dict(a))#轉(zhuǎn)化為字典

輸出:

{'編號(hào)': 1, '色澤': '青綠', '根蒂': '蜷縮', '敲聲': '濁響', '紋理': '清晰', '臍部': '凹陷', '觸感': '硬滑', '密度': 0.697,'含糖率': 0.46, '好瓜': '是'}

獲取除編號(hào),密度,含糖率外所有列的字典:

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

輸出:

{'色澤': {'烏黑', '青綠', '淺白'}, '根蒂': {'蜷縮', '稍蜷', '硬挺'}, '敲聲': {'清脆', '濁響', '沉悶'}, '紋理': {'清晰', '稍糊', '模糊'},  '臍部': {'平坦', '稍凹', '凹陷'}, '觸感': {'硬滑', '軟粘'},  '好瓜': {'是', '否'}}

參考文章:

[1]. Python利用pandas處理Excel數(shù)據(jù)的應(yīng)用

總結(jié)

到此這篇關(guān)于如何使用Python讀取.xlsx指定行列的文章就介紹到這了,更多相關(guān)Python讀取.xlsx指定行列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論