pythonindex函數可以直接使用嗎 如何使用EXCEL的VBA函數進行編程?
如何使用EXCEL的VBA函數進行編程?VBA中也可以建議使用的函數主要有:VBA內置函數、Excel函數、用戶自定義函數。舉例說明:內置函數是VBA以前設計什么好的存放在VBA內部的子程序。每個函數
如何使用EXCEL的VBA函數進行編程?
VBA中也可以建議使用的函數主要有:VBA內置函數、Excel函數、用戶自定義函數。
舉例說明:
內置函數是VBA以前設計什么好的存放在VBA內部的子程序。每個函數代表一種運算并前往一個值。動態鏈接庫格式萬分感謝:
函數名(參數列表)
如:abs(-3)換算-3的絕對值,趕往3
有所不同的函數其功能是完全不同的,參數的個數和含義也不是一樣的,有的函數必須1個參數,有的2個,有的甚至3個或更多,還有的原函數不需參數。
要只能證明的是:函數不是什么語句,它只能會出現在表達式中。
abs(-3)錯誤
xabs(-3)正確的
這是其中二例,很多很多強橫無比功能,篇幅不大,略舉幾例。,個人建議找專業的書籍,的或在頭條專欄里看看吧有沒有相關的圖文或視頻去看看,那樣的話你會進步馬上。
如何使用Python Pandas模塊讀取各類型文件?
Python的pandas庫是使Python成為主要用于數據分析的出色編程語言的一件事。Pandas使導入,分析和可視化數據變得更加非常很難。它確立在NumPy和matplotlib之類的軟件包的基礎上,使您是可以方便些地并且大部分數據分析和可視化工作。
在此Python數據科學教程中,我們將在用EricGrinstein抓取的數據,建議使用Pandas分析什么無論是流行的視頻游戲評論網站IGN的視頻游戲評論。哪個主機贏得了“控制臺大戰”(就游戲的審查而言)?該數據集將幫助我們看出答案。
當我們分析視頻游戲評論時,我們將清楚重要的Pandas概念,或者索引。您是可以再繼續接受下去,并在我們的許多其他Python教程之一中或注冊一PythonPandas課程來打聽一下無關Python和Pandas的更多信息。我們的許多其他數據科學課程也都可以使用Pandas。
千萬記住幫一下忙,本教程在用Python3.5c語言設計,并使用JupyterNotebook構建體系。您很有可能不使用的是Python,pandas和Jupyter的更新版本,但最后應該要基本相同。
用Pandas導入數據
如果您還在在用本教程,則要直接下載數據集,您可以不在此處接受你的操作。
我們將采取的措施的最先是讀取數據。數據以逗號分隔開來的值或csv文件存儲,其中5行用換行分隔,每列用逗號(,)分隔。這是ign.csv文件的前幾行:
如您在上方見到的,文件中的每一行代表一個游戲,該游戲早就過IGN審查。這些列真包含關聯該游戲的信息:
1)score_phrase—IGN怎么用一個詞形容人游戲。這鏈接到它收到消息的分數。
2)title-游戲名稱。
3)url—您可以在其中欄里點求下載評論的URL。
4)platform-審查游戲的平臺(PC,PS4等)。
5)score—游戲的內線得分,從1.0到10.0。
6)genre—游戲類型。
7)editors_choice-N如果沒有游戲不是編輯選擇的Y話,這樣是。這與得分密不可分。
8)release_year-游戲發布的年份。
9)release_month-游戲先發布的月份。
10)release_day-游戲發布的那天。
也有一個前導列,其中包含行索引值。我們也可以放心好了地遺漏掉此列,但稍后將深入交流哪些索引值。
就是為了在Python和pandas中比較有效地去處理數據,我們必須將csv文件讀取到PandasDataFrame中。DataFrame是它表示和如何處理表格數據的一種,表格數據是表格形式的數據,或者電子表格。表格數據具高行和列的格式,那像我們的csv文件差不多,但如果沒有我們是可以將其以及表格欄里點,則對于更也易寫作和排序。
目的是讀入數據,我們必須不使用_csv函數。此函數將接收一個csv文件并趕往一個DataFrame。200元以內代碼將:
a.導出pandas庫。我們將其文件屬性為,pd盡快更快地再輸入。這是數據分析和數據科學中的標準約定,您你經常會看見導入的Pandas那像pd其他人的代碼完全不一樣。
b.讀ign.csv入一個DataFrame,并將結果怎么分配給一個名為的新變量,reviews希望能夠我們這個可以reviews單獨語句我們的數據。
讀完后DataFrame后,以更很直觀的去看看我們所獲得的內容將很有幫助。Pandas方便些地為我們可以提供了兩種方法,可以快速地將數據打印到表中。這些功能是:
1)DataFrame.head()—打印DataFrame的前N行,其中N是您以及參數訊息傳遞給函數的數字,即DataFrame.head(7)。如果不訊息傳遞任何參數,則缺省設置為5。
2)DataFrame.tail()—不打印DataFrame的之后N行。同樣的,默認值為5。
我們將使用該head方法一欄其中的內容reviews:
我們還可以不ftp連接屬性,以欄里點以下行reviews:
如我們所見,所有內容均已正確的讀取文件-我們有18,625行和11列。
與帶有的scikit-learn這樣的Python軟件包而言,不使用Pandas的一大優勢是Pandas愿意我們手中掌握具備差別數據類型的列。在我們的數據集中在一起,reviews我們有存儲浮點值(如)score,字符串值(如score_phrase)和整數(如)的列release_year,但在此處使用NumPy會很困難,但Pandas和Python可以挺好的地如何處理它。
現在我們巳經對的地讀取數據了數據,讓我們就開始成立索引reviews以獲取所需的行和列。
用Pandas索引DataFrames
之前,我們建議使用了該head方法來打印的第一5行reviews。我們是可以使用方法結束同樣的事情。該iloc方法允許我們按位置檢索行和列。而,我們是需要指定所需行的位置在內所需列的位置。下面的代碼將reviews.head()通過中,選擇行0到5,在內數據幾乎全部的所有列來圖片文件夾我們的結果:
讓我們更潛近地研究什么我們的代碼:我們指定了是想的rows0:5。這意味著我們是想從position0到(但不以及)position的行5。
第一行被其實是在位置0,所以中,選擇行0:5給了我們行的位置0,1,2,3,和4。我們也是需要所有列,而且不使用快捷來選擇它們。它的工作是這樣的:假如我們不就是喜歡第一個位置值,比如:5,那是題中我們的意思0。假如我們忽略了那個位置值(如)0:,則假設條件我們是指DataFrame中的后來一行或后來一列。我們必須所有列,而只委托了一個冒號(:),沒有任何位置。這使我們的列從0到后來一列。以下是一些索引示例這些結果:
1)[:5,:]—第一5行,在內這些行的所有列。
2)[:,:]—整個DataFrame。
3)[5:,5:]—從位置5結束的行,從位置就開始的列5。
4)[:,0]—第一列,包括該列的所有行。
5)[9,:]—第十行,這些該行的所有列。
按位置索引與NumPy索引更加幾乎一樣。如果您想打聽一下許多信息,可以不閱讀理解我們的NumPy教程?,F在我們明白了了要如何按位置索引,讓我們刪除第一列,該列沒有任何有用信息:
在Pandas中使用標簽在Python中組建索引
呢既然我們明白怎么按位置檢索行和列,這樣值得你去愛想研究建議使用DataFrames的另一種要注意方法,即按標簽檢索行和列。與NumPy相比,Pandas的通常優勢在于,每一列和每一行也有一個標簽。也可以如何處理列的位置,只不過沒法潛進來哪個數字不對應于哪個列。
我們可以使用方法處理標簽,該方法不能我們建議使用標簽而不是位置參與索引。我們可以reviews使用200以內loc方法沒顯示前五行:
上面的內容只不過與根本不會太大的不同[0:5,:]。這是畢竟但他行標簽這個可以常規任何值,但我們的行標簽與位置精確匹配。您是可以在上方表格的最左側看見了行標簽(它們以粗體總是顯示)。您還可以按照訪問網絡DataFrame的index屬性來一欄它們。我們將顯示的行索引reviews:
Int64Index([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,...],dtypeint64)
只不過,索引不是有總是與位置版本問題。在下面的代碼單元中,我們將:
a.獲取行10至行20的reviews,并分配結果some_reviews。
b.不顯示的第一5行some_reviews。
如前述所示,在中some_reviews,行索引最初起源于,10已經結束于20。所以,接觸loc在用小于等于10或大于的數字20將可能導致錯誤:
some_reviews.loc[9:21,:]
通常而言,在可以使用數據時,列標簽這個可以使工作變地非常很快。我們這個可以在loc方法中更改列標簽,以按標簽而也不是按位置檢索系統列。
我們還可以不實際傳入列表來一次委托多個列:
Pandas系列對象
我們可以不實際幾種有所不同的在Pandas中檢索單個列。到目前為止,我們巳經看見了兩種語法:
1)[:,1]—將檢索第二列。
2)reviews.loc[:,score_phrase]—還將檢索到第二列。
還有第三種甚至還更很容易的方法來檢索整列。我們是可以在方括號中指定你列名稱,例如可以使用字典:
我們還可以按照100元以內方法建議使用列列表:
當我們數據庫檢索單個列時,但是是在檢索到Pandas Series對象。DataFrame存儲表格數據,而Series存儲數據的單列或單行。
我們可以不驗證驗證單個列是否是為系列:
我們可以手動創建角色系列以好些地所了解其工作原理。要修改一個Series,我們在類的對象它時將一個列表或NumPy數組傳信給Series對象:
系列這個可以包涵任何類型的數據,除了混合類型。在這里,我們創建一個乾坤二卦字符串對象的系列:
在Pandas中創建角色一個DataFrame
我們也可以實際將多個Series傳信到DataFrame類中來創建角色DataFrame。在這里,我們傳出還未修改的兩個Series對象,
s1作為第一行,s2另外第二行:
我們還這個可以使用列表列表完成同樣的的事情。每個內部列表在結果DataFrame中被其為一行:
我們這個可以在修改DataFrame時指定列標簽:
在內行標簽(索引):
還請注意,不必須窩進和不能的行。我們早就以這種匯編語言了代碼,以使其更更易解析,不過您經常會會遇到了將它們所有不能寫一行的情況。例如,200以內代碼將才能產生與我們在本段上方的表中注意到的結果已經完全相同的結果:
不管如何,直接添加標簽后,便這個可以在用它們對DataFrame參與索引:
columns要是將字典傳信給DataFrame構造函數,則也可以跳指定你關鍵字參數的操作。這將自動啟動設置中列名稱:
PandasDataFrame方法
通常而言,scikit-learnDataFrame中的每一列也是Series對象:
我們這個可以在Series對象上全局函數與在DataFrame上是可以動態鏈接庫的大多數相同的方法,和head:
PandasSeries和DataFrames還具備其他使計算出更簡單的方法?;蛘?,我們可以不使用方法來查看Series的均值:
我們還這個可以內部函數相似的方法,該方法默認情況下將里查DataFrame中每個數字列的平均值:
我們是可以可以修改axis關鍵字參數以mean計算每行或每列的平均值。默認情況下,axis等于零0,并將計算出每列的平均值。我們還可以不將其設置1為可以計算每行的平均值。請特別注意,這只會計算每行中數值的平均值:
(axis1)
0510.500
1510.500
2510.375
3510.125
4510.125
5509.750
6508.750
7510.250
8508.750
9509.750
10509.875
11509.875
12509.500
13509.250
14509.250
...
18610510.250
18611508.700
18612509.200
18613508.000
18614515.050
18615515.050
18616508.375
18617508.600
18618515.025
18619514.725
18620514.650
18621515.000
18622513.950
18623515.000
18624515.000
Length:18625,dtype:float64
Series和DataFrames上有很多的的的方法mean。這里有一些更方便的東西:
1)—直接輸入DataFrame中各列之間的相關性。
2)—換算每個DataFrame列中非空值的數量。
3)—在每一列中可以找到大值。
4)—里查每一列中的最小值。
5)—里查每列的中位數。
6)—里查每列的標準偏差。
.例如,我們是可以在用該corr方法一欄有無有任何列與關聯score。這這個可以提醒我們最近首頁的游戲完成了更高的評價(release_year),肯定在年底之前發布的游戲完成了更好的評分(release_month):
而就我們在上面看到的現在這樣,我們的數字列都就沒與關聯score,因此我們明白發布時間與評論評分卻不是線性相關性。
DataFrameMath與Pandas
我們還可以使用pandas在Python中的Series或DataFrame對象上負責執行數算。的或,我們這個可以將score列中的每個值乘以22以將刻度從0–可以切換10到0–5:
reviews[score]/2
04.50
14.50
24.25
34.25
44.25
53.50
61.50
74.50
81.50
93.50
103.75
113.75
123.50
134.50
144.50
...
186103.00
186112.90
186123.90
186134.00
186144.60
186154.60
186163.75
186174.20
186184.55
186193.95
186203.80
186214.50
186222.90
186235.00
186245.00
Name:score,Length:18625,dtype:float64
所有具體用法的數算符在Python的工作,如,-,*,/,和^將在系列或DataFrames大Pandas的工作,但是將適用于每一個元素在一個數據幀或一個系列。
Pandas中的布爾索引
現在我們也了解了一些Pandas的基礎知識,讓我們不再進行分析。我們前面看見的,平均都在值的score列reviews左右7。如果我們想可以找到所有得分多都高于平均水平的游戲怎么辦?
我們可以先進行也很。也很會將“系列”中的每個值與重新指定值參與也很,然后生成沉淀一個“系列”,其中包涵意思是比較比較狀態的布爾值。可以使用Python Pandas分析什么視頻游戲數據或者,看到哪些行的score值小于7:
score_filterreviews[score]r267
score_filter
0True
1True
2True
3True
4True
5False
6False
7True
8False
9False
10True
11True
12False
13True
14True...
18610False
18611False
18612True
18613True
18614True
18615True
18616True
18617True
18618True
18619True
18620True
18621True
18622False
18623True
18624True
Name:score,Length:18625,dtype:bool
有了布爾系列后,我們是可以不使用它來選擇類型DataFrame中該系列包涵value的行True。因為,我們沒法你選擇行reviews,其中score小于7:
可以不使用多個條件通過過濾。打比方我們要查找針對連續發行Xbox One的得分超過的游戲7。在下面的代碼中,我們:
a.系統設置兩個條件的過濾器:
1)檢查是否是score為07。
2)檢查是否需要platform互相垂直Xbox One
b.應用過濾器以reviews僅聲望兌換所需的行。
c.使用head方法再打印的第一5行filtered_reviews。
在在用多個條件接受過濾時,將每個條件裝在括號中王用一個amp符號(amp)連成一體是很最重要的。
Pandas圖
現在我們很清楚該如何過濾后,我們可以創建角以觀察的回憶一下其分布Xbox One與的回顧曾經廣泛分布PlayStation 4。這將好處我們可以確定哪個控制臺本身更好的游戲。
我們也可以直方圖來你做到這一點,該直方圖將繪制的差別得分范圍內的頻率。我們可以不使用方法為每個控制臺可以制作一個直方圖。該方法借用幕后的流行Python繪圖庫matplotlib生成美觀的繪圖。
該plot方法設置為為手工繪制折線圖。我們必須傳去關鍵字參數kindhist來繪制圖直方圖。在下面的代碼中,我們:
a.撥打%matplotlibinline以在Jupyter筆記本中設置繪圖。
b.過濾reviews以僅包含有關的數據Xbox One。
c.繪制圖score列。
我們也可以對PS4:
從我們的直方圖中可以看出,與相比,PlayStation 4具有更高評級的游戲Xbox One。
顯然,這只是冰山一角,涉及到我們可以用來分析什么該數據集的潛在動機方向,但我們已經有了另一個很好的開端:我們已經不使用Python和pandas導出了數據集,并能學會了可以使用各種不同的索引方法選擇我們要想的數據點,并通過了一些飛快的探索性數據分析,以回答我們結束時遇到的問題。