<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
import pandas as pd import matplotlib.pyplot as plt
資料:有一個Excel檔案lemon.xlsx,有兩個表單,表單名分別為:Python 以及student。
Python的表單資料如下所示:
student的表單資料如下所示:
1、在利用pandas模組進行操作前,可以先引入這個模組,如下:
import pandas as pd
2、讀取Excel檔案的兩種方式:
#方法一:預設讀取第一個表單 df=pd.read_excel('lemon.xlsx')#這個會直接預設讀取到這個Excel的第一個表單 data=df.head()#預設讀取前5行的資料 print("獲取到所有的值:n{0}".format(data))#格式化輸出
得到的結果是一個二維矩陣,如下所示:
#方法二:通過指定表單名的方式來讀取 df=pd.read_excel('lemon.xlsx',sheet_name='student')#可以通過sheet_name來指定讀取的表單 data=df.head()#預設讀取前5行的資料 print("獲取到所有的值:n{0}".format(data))#格式化輸出
得到的結果如下所示,也是一個二維矩陣:
#方法三:通過表單索引來指定要存取的表單,0表示第一個表單 #也可以採用表單名和索引的雙重方式來定位表單 #也可以同時定位多個表單,方式都羅列如下所示 df=pd.read_excel('lemon.xlsx',sheet_name=['python','student'])#可以通過表單名同時指定多個 # df=pd.read_excel('lemon.xlsx',sheet_name=0)#可以通過表單索引來指定讀取的表單 # df=pd.read_excel('lemon.xlsx',sheet_name=['python',1])#可以混合的方式來指定 # df=pd.read_excel('lemon.xlsx',sheet_name=[1,2])#可以通過索引 同時指定多個 data=df.values#獲取所有的資料,注意這裡不能用head()方法哦~ print("獲取到所有的值:n{0}".format(data))#格式化輸出
1、讀取指定的單行,資料會存在列表裡面
#1:讀取指定行 df=pd.read_excel('lemon.xlsx')#這個會直接預設讀取到這個Excel的第一個表單 data=df.ix[0].values#0表示第一行 這裡讀取資料並不包含表頭,要注意哦! print("讀取指定行的資料:n{0}".format(data))
得到的結果如下所示:
2、讀取指定的多行,資料會存在巢狀的列表裡面
df=pd.read_excel('lemon.xlsx') data=df.ix[[1,2]].values#讀取指定多行的話,就要在ix[]裡面巢狀列表指定行數 print("讀取指定行的資料:n{0}".format(data))
3、讀取指定的行列
df=pd.read_excel('lemon.xlsx') data=df.ix[1,2]#讀取第一行第二列的值,這裡不需要巢狀列表 print("讀取指定行的資料:n{0}".format(data))
4、讀取指定的多行多列值
df=pd.read_excel('lemon.xlsx') data=df.ix[[1,2],['title','data']].values#讀取第一行第二行的title以及data列的值,這裡需要巢狀列表 print("讀取指定行的資料:n{0}".format(data))
5、獲取所有行的指定列
df=pd.read_excel('lemon.xlsx') data=df.ix[:,['title','data']].values#讀所有行的title以及data列的值,這裡需要巢狀列表 print("讀取指定行的資料:n{0}".format(data))
6、獲取行號並列印輸出
df=pd.read_excel('lemon.xlsx') print("輸出行號列表",df.index.values) 輸出結果是: 輸出行號列表 [0 1 2 3]
7、獲取列名並列印輸出
df=pd.read_excel('lemon.xlsx') print("輸出列標題",df.columns.values) 執行結果如下所示: 輸出列標題 ['case_id' 'title' 'data']
8、獲取指定行數的值
df=pd.read_excel('lemon.xlsx') print("輸出值",df.sample(3).values)#這個方法類似於head()方法以及df.values方法 輸出值 [[2 '輸入錯誤的密碼' '{"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)
我們有這樣的資料
處理成列表巢狀字典,且字典的key為表頭名。
實現的程式碼如下所示:
df=pd.read_excel('lemon.xlsx') test_data=[] for i in df.index.values:#獲取行號的索引,並對其進行遍歷: #根據i來獲取每一行指定的資料 並利用to_dict轉成字典 row_data=df.ix[i,['case_id','module','title','http_method','url','data','expected']].to_dict() test_data.append(row_data) print("最終獲取到的資料是:{0}".format(test_data))
最後得到的結果是:
最終獲取到的資料是: [{'title': '正常登入', 'case_id': 1, 'data': '{"mobilephone":"18688773467","pwd":"123456"}'}, {'title': '輸入錯誤的密碼', 'case_id': 2, 'data': '{"mobilephone":"18688773467","pwd":"12345678"}'}, {'title': '正常充值', 'case_id': 3, 'data': '{"mobilephone":"18688773467","amount":"1000"}'}, {'title': '充值輸入負數', 'case_id': 4, 'data': '{"mobilephone":"18688773467","amount":"-100"}'}]
所用資料:
# -*- coding: utf-8 -*- """ Created on Tue Sep 29 18:24:14 2020 @author: chenj """ # 匯入 pandas 和 matplotlib import pandas as pd import matplotlib.pyplot as plt # 讀取檔案 # ============================================================================= # 可能遇到的問題 路徑分隔符 建議用「/」或「\」 讀取桌面檔案時 用「」可能會失敗 # ============================================================================= data_source = pd.read_excel('F:/南師2020作業/人工智慧/datas.xlsx') # 函數plot()嘗試根據數位繪製出有意義的圖形 print(data_source['datas']) plt.plot(data_source['datas'])
使用scatter繪製散點圖並設定其樣式 1、繪製單個點,使用函數scatter,並向它傳遞x,y座標,並可使用引數s指定點的大小
plt.scatter(2,4,s=20)
2、繪製一系列點,向scatter傳遞兩個分別包含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、設定座標軸的取值範圍:函數axis()要求提供四個值,x,y座標軸的最大值和最小值
plt.axis([0,1100,0,1100000])
4、使用引數edgecolor在函數scatter中設定資料點的輪廓
plt.scatter(x_values,y_values,edgecolor='black',s=20)
當引數值為'none'時不使用輪廓
5、向scatter傳遞引數c,指定要使用的顏色
可使用顏色名稱,或者使用RGB顏色模式自定義顏色,元組中包含三個0~1之間的小數值,分別表示紅綠藍顏色分量。
plt.scatter(x_values,y_values,c=(0,0,0.8),edgecolor='none',s=20)為由淺藍色組成的散點圖
6、使用顏色對映
顏色對映是一系列顏色,它們從起始顏色漸變到結束顏色,在視覺化中顏色對映用於突出資料的規律。
例如,可用較淺的顏色表示較小的數值,較深的顏色表示較大的數值。
模組pyplot內建了一組顏色對映,要使用顏色對映,需要告訴pyplot如何設定資料集中每個點的顏色。
plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=40) plt.title("Square numbers",fontsize=24)
我們將引數c設定成了一個y值列表,並使用引數cmap告訴pyplot使用哪個顏色對映。這些代
碼將y值較小的點顯示為淺藍色,並將y值較大的點顯示為深藍色。
7、自動儲存圖表:使用函數plt.savefig()
plt.savefig('D:/www/figure.png',bbox_inches='tight')
第一個引數是檔名,第二個引數指定將圖表多餘的空白區域減掉,如果要保留圖表周圍多餘的空白區域,可省略這個實參。
8、設定繪圖視窗尺寸
函數figure用於指定圖表的寬度、高度、解析度和背景色。
形參figsize指定一個元組,向matplotlib指出繪圖視窗的尺寸,單位為英寸。
形參dpi向figure傳遞解析度,預設為80
plt.figure(dpi=128,figsize=(10,6))
9、範例程式
#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()
# 匯入 pandas 和 matplotlib import pandas as pd import matplotlib.pyplot as plt # 匯入中文顯示庫函數 from matplotlib.font_manager import FontProperties font_set = FontProperties(fname=r"c:windowsfontssimsun.ttc", size=15) # 讀取檔案 df = pd.read_excel("F:/南師2020作業/人工智慧/datas.xlsx") # 輸出資料行數 print("資料行數:" , len(df)) ''' 由於只有一列資料我們使用 excel 行號作為 x 值的列表 用range()函數來建立一個列表 [1,24) range()函數 遍歷數位序列 ''' x = list(range(1,len(df)+1)) #[1,24) # 讀取指定的單列也就是 datas列,資料會存在列表裡面 y = df['datas'] # for 迴圈輸出資料行數 for a in (list(range(1,len(df)+1))): print('行號:'+str(a)) #將int型別的a 轉換為字串 #設定 x值 和y值的列表 plt.scatter(x,y) # 圖表名稱 plt.title('散點圖',fontproperties=font_set) # 設定x軸名稱 plt.xlabel("X") # 設定y軸名稱 plt.ylabel("Y") plt.show()
到此這篇關於Python讀取excel檔案中的資料,繪製折線圖及散點圖的文章就介紹到這了,更多相關Python讀取excel檔案資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45