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

Python讀取excel文件中的數(shù)據(jù),繪制折線圖及散點(diǎn)圖

 更新時(shí)間:2022年09月20日 14:59:50   作者:Famiglistimott  
這篇文章主要介紹了Python讀取excel文件中的數(shù)據(jù),繪制折線圖及散點(diǎn)圖,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

一、導(dǎo)包

import pandas as pd
import matplotlib.pyplot as plt

二、繪制簡(jiǎn)單折線

數(shù)據(jù):有一個(gè)Excel文件lemon.xlsx,有兩個(gè)表單,表單名分別為:Python 以及student。

Python的表單數(shù)據(jù)如下所示:

student的表單數(shù)據(jù)如下所示: 

1、在利用pandas模塊進(jìn)行操作前,可以先引入這個(gè)模塊,如下: 

import pandas as pd

2、讀取Excel文件的兩種方式:

#方法一:默認(rèn)讀取第一個(gè)表單
df=pd.read_excel('lemon.xlsx')#這個(gè)會(huì)直接默認(rèn)讀取到這個(gè)Excel的第一個(gè)表單
data=df.head()#默認(rèn)讀取前5行的數(shù)據(jù)
print("獲取到所有的值:\n{0}".format(data))#格式化輸出

得到的結(jié)果是一個(gè)二維矩陣,如下所示:

#方法二:通過(guò)指定表單名的方式來(lái)讀取
df=pd.read_excel('lemon.xlsx',sheet_name='student')#可以通過(guò)sheet_name來(lái)指定讀取的表單
data=df.head()#默認(rèn)讀取前5行的數(shù)據(jù)
print("獲取到所有的值:\n{0}".format(data))#格式化輸出

得到的結(jié)果如下所示,也是一個(gè)二維矩陣:

#方法三:通過(guò)表單索引來(lái)指定要訪問(wèn)的表單,0表示第一個(gè)表單
#也可以采用表單名和索引的雙重方式來(lái)定位表單
#也可以同時(shí)定位多個(gè)表單,方式都羅列如下所示
df=pd.read_excel('lemon.xlsx',sheet_name=['python','student'])#可以通過(guò)表單名同時(shí)指定多個(gè)
# df=pd.read_excel('lemon.xlsx',sheet_name=0)#可以通過(guò)表單索引來(lái)指定讀取的表單
# df=pd.read_excel('lemon.xlsx',sheet_name=['python',1])#可以混合的方式來(lái)指定
# df=pd.read_excel('lemon.xlsx',sheet_name=[1,2])#可以通過(guò)索引 同時(shí)指定多個(gè)
data=df.values#獲取所有的數(shù)據(jù),注意這里不能用head()方法哦~
print("獲取到所有的值:\n{0}".format(data))#格式化輸出

三、pandas操作Excel的行列

1、讀取指定的單行,數(shù)據(jù)會(huì)存在列表里面

#1:讀取指定行
df=pd.read_excel('lemon.xlsx')#這個(gè)會(huì)直接默認(rèn)讀取到這個(gè)Excel的第一個(gè)表單
data=df.ix[0].values#0表示第一行 這里讀取數(shù)據(jù)并不包含表頭,要注意哦!
print("讀取指定行的數(shù)據(jù):\n{0}".format(data))

得到的結(jié)果如下所示:

 2、讀取指定的多行,數(shù)據(jù)會(huì)存在嵌套的列表里面

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

3、讀取指定的行列

df=pd.read_excel('lemon.xlsx')
data=df.ix[1,2]#讀取第一行第二列的值,這里不需要嵌套列表
print("讀取指定行的數(shù)據(jù):\n{0}".format(data))

4、讀取指定的多行多列值

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2],['title','data']].values#讀取第一行第二行的title以及data列的值,這里需要嵌套列表
print("讀取指定行的數(shù)據(jù):\n{0}".format(data))

5、獲取所有行的指定列

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

6、獲取行號(hào)并打印輸出

df=pd.read_excel('lemon.xlsx')
print("輸出行號(hào)列表",df.index.values)
 
輸出結(jié)果是:
輸出行號(hào)列表 [0 1 2 3]

7、獲取列名并打印輸出

df=pd.read_excel('lemon.xlsx')
print("輸出列標(biāo)題",df.columns.values)
 
運(yùn)行結(jié)果如下所示:
輸出列標(biāo)題 ['case_id' 'title' 'data']

8、獲取指定行數(shù)的值

df=pd.read_excel('lemon.xlsx')
print("輸出值",df.sample(3).values)#這個(gè)方法類(lèi)似于head()方法以及df.values方法
 
輸出值
 [[2 '輸入錯(cuò)誤的密碼' '{"mobilephone":"18688773467","pwd":"12345678"}']
 [3 '正常充值' '{"mobilephone":"18688773467","amount":"1000"}']
 [1 '正常登錄' '{"mobilephone":"18688773467","pwd":"123456"}']]

9、獲取指定列的值

df=pd.read_excel('lemon.xlsx')
print("輸出值\n",df['data'].values)

四、pandas處理Excel數(shù)據(jù)成為字典

我們有這樣的數(shù)據(jù)

 處理成列表嵌套字典,且字典的key為表頭名。

實(shí)現(xiàn)的代碼如下所示:

df=pd.read_excel('lemon.xlsx')
test_data=[]
for i in df.index.values:#獲取行號(hào)的索引,并對(duì)其進(jìn)行遍歷:
    #根據(jù)i來(lái)獲取每一行指定的數(shù)據(jù) 并利用to_dict轉(zhuǎn)成字典
    row_data=df.ix[i,['case_id','module','title','http_method','url','data','expected']].to_dict()
    test_data.append(row_data)
print("最終獲取到的數(shù)據(jù)是:{0}".format(test_data))

最后得到的結(jié)果是:

最終獲取到的數(shù)據(jù)是:
[{'title': '正常登錄', 'case_id': 1, 'data': '{"mobilephone":"18688773467","pwd":"123456"}'}, 
{'title': '輸入錯(cuò)誤的密碼', 'case_id': 2, 'data': '{"mobilephone":"18688773467","pwd":"12345678"}'}, 
{'title': '正常充值', 'case_id': 3, 'data': '{"mobilephone":"18688773467","amount":"1000"}'}, 
{'title': '充值輸入負(fù)數(shù)', 'case_id': 4, 'data': '{"mobilephone":"18688773467","amount":"-100"}'}]

五、繪制簡(jiǎn)單折線圖

所用數(shù)據(jù):

# -*- coding: utf-8 -*-
"""
Created on Tue Sep 29 18:24:14 2020
@author: chenj
"""
# 導(dǎo)入 pandas 和 matplotlib
import pandas as pd
import matplotlib.pyplot as plt
 
# 讀取文件
# =============================================================================
# 可能遇到的問(wèn)題 路徑分隔符 建議用“/”或“\\”  讀取桌面文件時(shí) 用“\”可能會(huì)失敗 
# =============================================================================
data_source = pd.read_excel('F:/南師2020作業(yè)/人工智能/datas.xlsx')
# 函數(shù)plot()嘗試根據(jù)數(shù)字繪制出有意義的圖形
print(data_source['datas'])
plt.plot(data_source['datas'])

六、繪制簡(jiǎn)單散點(diǎn)圖

使用scatter繪制散點(diǎn)圖并設(shè)置其樣式 1、繪制單個(gè)點(diǎn),使用函數(shù)scatter,并向它傳遞x,y坐標(biāo),并可使用參數(shù)s指定點(diǎn)的大小

plt.scatter(2,4,s=20)

2、繪制一系列點(diǎn),向scatter傳遞兩個(gè)分別包含x值和y值的列表

x_values=[1,2,3,4,5]
y_values=[1,4,9,16,25]
plt.scatter(x_values,y_values,s=20)

3、設(shè)置坐標(biāo)軸的取值范圍:函數(shù)axis()要求提供四個(gè)值,x,y坐標(biāo)軸的最大值和最小值

plt.axis([0,1100,0,1100000])

4、使用參數(shù)edgecolor在函數(shù)scatter中設(shè)置數(shù)據(jù)點(diǎn)的輪廓

plt.scatter(x_values,y_values,edgecolor='black',s=20)

當(dāng)參數(shù)值為'none'時(shí)不使用輪廓

5、向scatter傳遞參數(shù)c,指定要使用的顏色

可使用顏色名稱(chēng),或者使用RGB顏色模式自定義顏色,元組中包含三個(gè)0~1之間的小數(shù)值,分別表示紅綠藍(lán)顏色分量。

plt.scatter(x_values,y_values,c=(0,0,0.8),edgecolor='none',s=20)為由淺藍(lán)色組成的散點(diǎn)圖

6、使用顏色映射

顏色映射是一系列顏色,它們從起始顏色漸變到結(jié)束顏色,在可視化中顏色映射用于突出數(shù)據(jù)的規(guī)律。
例如,可用較淺的顏色表示較小的數(shù)值,較深的顏色表示較大的數(shù)值。
模塊pyplot內(nèi)置了一組顏色映射,要使用顏色映射,需要告訴pyplot如何設(shè)置數(shù)據(jù)集中每個(gè)點(diǎn)的顏色。

plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=40)
plt.title("Square numbers",fontsize=24)

我們將參數(shù)c設(shè)置成了一個(gè)y值列表,并使用參數(shù)cmap告訴pyplot使用哪個(gè)顏色映射。這些代 
碼將y值較小的點(diǎn)顯示為淺藍(lán)色,并將y值較大的點(diǎn)顯示為深藍(lán)色。

7、自動(dòng)保存圖表:使用函數(shù)plt.savefig()

plt.savefig('D:/www/figure.png',bbox_inches='tight')

第一個(gè)參數(shù)是文件名,第二個(gè)參數(shù)指定將圖表多余的空白區(qū)域減掉,如果要保留圖表周?chē)嘤嗟目瞻讌^(qū)域,可省略這個(gè)實(shí)參。

8、設(shè)置繪圖窗口尺寸

函數(shù)figure用于指定圖表的寬度、高度、分辨率和背景色。
形參figsize指定一個(gè)元組,向matplotlib指出繪圖窗口的尺寸,單位為英寸。
形參dpi向figure傳遞分辨率,默認(rèn)為80

plt.figure(dpi=128,figsize=(10,6))

9、實(shí)例程序

#a.py
import matplotlib.pyplot as plt
x_values=list(range(1,1001))
y_values=[x**2 for x in x_values]
plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=40)
plt.title("Square numbers",fontsize=24)
plt.xlabel("value",fontsize=24)
plt.ylabel("Square of Value",fontsize=24)
plt.tick_params(axis='both',labelsize=14)
plt.axis([0,1100,0,1100000])
plt.savefig('D:/www/figure.png',bbox_inches='tight')
plt.show()
# 導(dǎo)入 pandas 和 matplotlib
import pandas as pd
import matplotlib.pyplot as plt
# 導(dǎo)入中文顯示庫(kù)函數(shù)
from matplotlib.font_manager import FontProperties
font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=15)
 
# 讀取文件
df = pd.read_excel("F:/南師2020作業(yè)/人工智能/datas.xlsx")
# 輸出數(shù)據(jù)行數(shù)
print("數(shù)據(jù)行數(shù):" , len(df))
'''
由于只有一列數(shù)據(jù)我們使用 excel 行號(hào)作為 x 值的列表
用range()函數(shù)來(lái)創(chuàng)建一個(gè)列表 [1,24)
range()函數(shù) 遍歷數(shù)字序列
'''
x = list(range(1,len(df)+1)) #[1,24)
# 讀取指定的單列也就是 datas列,數(shù)據(jù)會(huì)存在列表里面
y = df['datas']
# for 循環(huán)輸出數(shù)據(jù)行數(shù)
for a in (list(range(1,len(df)+1))):
    print('行號(hào):'+str(a)) #將int類(lèi)型的a 轉(zhuǎn)換為字符串
 
#設(shè)置 x值 和y值的列表
plt.scatter(x,y)
# 圖表名稱(chēng)
plt.title('散點(diǎn)圖',fontproperties=font_set)
# 設(shè)置x軸名稱(chēng)
plt.xlabel("X")
# 設(shè)置y軸名稱(chēng)
plt.ylabel("Y")
plt.show()

到此這篇關(guān)于Python讀取excel文件中的數(shù)據(jù),繪制折線圖及散點(diǎn)圖的文章就介紹到這了,更多相關(guān)Python讀取excel文件數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python UnboundLocalError和NameError錯(cuò)誤根源案例解析

    Python UnboundLocalError和NameError錯(cuò)誤根源案例解析

    這篇文章主要介紹了Python UnboundLocalError和NameError錯(cuò)誤根源解析,本文通過(guò)案例分析實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-10-10
  • Python檢查端口是否打開(kāi)的七種方法總結(jié)

    Python檢查端口是否打開(kāi)的七種方法總結(jié)

    在信息安全領(lǐng)域,端口掃描是一項(xiàng)常見(jiàn)的技術(shù),用于逐個(gè)檢測(cè)目標(biāo)主機(jī)上的端口是否開(kāi)放,這篇文章主要給大家介紹了關(guān)于Python檢查端口是否打開(kāi)的七種方法總結(jié),需要的朋友可以參考下
    2023-12-12
  • python實(shí)現(xiàn)詞法分析器

    python實(shí)現(xiàn)詞法分析器

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)詞法分析器的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)聊天程序

    python實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)聊天程序

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)聊天程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python對(duì)象與json相互轉(zhuǎn)換的方法

    python對(duì)象與json相互轉(zhuǎn)換的方法

    這篇文章主要介紹了python對(duì)象與json相互轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 對(duì)python中數(shù)據(jù)集劃分函數(shù)StratifiedShuffleSplit的使用詳解

    對(duì)python中數(shù)據(jù)集劃分函數(shù)StratifiedShuffleSplit的使用詳解

    今天小編就為大家分享一篇對(duì)python中數(shù)據(jù)集劃分函數(shù)StratifiedShuffleSplit的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python 字符串與數(shù)字輸出方法

    Python 字符串與數(shù)字輸出方法

    今天小編小編就為大家分享一篇Python 字符串與數(shù)字輸出方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • python+requests實(shí)現(xiàn)接口測(cè)試的完整步驟

    python+requests實(shí)現(xiàn)接口測(cè)試的完整步驟

    這篇文章主要給大家介紹了關(guān)于python+requests實(shí)現(xiàn)接口測(cè)試的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 每天遷移MySQL歷史數(shù)據(jù)到歷史庫(kù)Python腳本

    每天遷移MySQL歷史數(shù)據(jù)到歷史庫(kù)Python腳本

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)每天遷移MySQL歷史數(shù)據(jù)到歷史庫(kù)的腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 樹(shù)莓派用python中的OpenCV輸出USB攝像頭畫(huà)面

    樹(shù)莓派用python中的OpenCV輸出USB攝像頭畫(huà)面

    這篇文章主要為大家詳細(xì)介紹了樹(shù)莓派用python中的OpenCV輸出USB攝像頭畫(huà)面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評(píng)論