久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久
首頁
高薪實戰項目班
new
Linux云計算SRE
Python全能開發
云原生微服務實戰
go高并發實戰
網絡安全攻防滲透
DevOps項目實戰
華為鴻蒙NEXT培訓
AIGC大模型應用開發
AI大模型微調
AIGC大模型應用實戰
Rust工程師進階實戰
考試認證
hot
阿里云認證
RHCE
CKA/CKS
CISP
Nginx
軟考-高級系統分析師
軟考-高級系統規劃管理師
軟考-高級系統架構與設計師
技術學習教程
Linux云計算實戰
python學習教程
網絡安全
go開發實戰
云原生及微服務
大數據學習
數據庫
免費試學
就業喜訊
馬哥教育動態
馬哥頭條
企業名師
一線企業教練
開課動態
就業喜訊
行業合作
產品升級
校企合作
官方支付通道
馬哥教育官網
首頁
技術干貨
Python開發
用Python執行SQL、Excel常見任務?10個方法全搞定!
Python開發
,
技術干貨
,
馬哥教育快報
2021年4月19日 上午11:10
3714
數據從業者有許多工具可用于分割數據。有些人使用 Excel,有些人使用SQL,有些人使用Python。對于某些任務,使用 Python 的優點是顯而易見的。以更快的速度處理更大的數據集。使用基于 Python 構建的開源機器學習庫。你可以輕松導入和導出不同格式的數據。
由于其多功能性,Python 可以成為任何數據分析師工具箱的重要組成部分。但是,這很難開始。大多數數據分析師可能熟悉 SQL 或 Excel。本篇是涉及幫助你將技能和技術從 EXcel 和 SQL 轉移到 Python。
首先,讓我們來設置 Python。最簡單的方法就是使用 Jupyter Notebook 和 Anaconda。這個可視化界面將允許你插入 Python 代碼并立即查看輸出。這也將使你輕松跟隨本教程的其余部分。
我強烈推薦使用 Anaconda,但這個初學者指南也將幫助你安裝 Python——盡管這將使本篇文章更加難以接受。
我們從基礎開始:打開一個數據集。
01?導入數據
你可以導入.sql 數據庫并用 SQL 查詢中處理它們。在Excel中,你可以雙擊一個文件,然后在電子表格模式下開始處理它。在 Python 中,有更多復雜的特性,得益于能夠處理許多不同類型的文件格式和數據源的。
使用一個數據處理庫 Pandas,你可以使用 read 方法導入各種文件格式。使用這個方法所能導入完整的文件格式清單是在 Pandas 文檔中。你可以導入
從 CSV 和 Excel 文件到 HTML 文件中的所有內容!
使用 Python 的最大優點之一是能夠從網絡的巨大范圍中獲取數據的能力,而不是只能訪問手動下載的文件。在 Python 的requests 庫可以幫助你分類不同的網站,并從它們獲取數據,而 BeautifulSoup 庫可以幫助你處理和過濾數據,那么你將精確得到你所需要的。如果你要去這條路線,請小心使用權問題。
在這個例子中,我們將獲取許多國家人均 GDP(一個技術術語,意思是一個國家的人均收入)的維基百科表格,
并在 Python 中使用 Pandas 庫對數據進行排序。
首先,導入我們需要的庫。
需要 Pandas 庫處理我們的數據。需要 numpy 庫來執行數值的操作和轉換。我們需要 requests 庫來從網站獲取 HTML 數據。需要 BeautifulSoup 來處理這些數據。最后,需要 Python(re)的正則表達式庫來更改在處理數據時將出現的某些字符串。
在 Python 中,不需要知道很多關于正則表達式的知識,但它們是一個強大的工具,
可用于匹配和替換某些字符串或子字符串。
如果你想了解更多,請參考以下內容。
02?信任這個網站的一些代碼
這是一個更具技術性的解釋,詳細說明如何使用 Python 代碼來獲取 HTML 表格。
你可以將上面的代碼復制粘貼到你自己的 Anaconda 中,如果你用一些 Python 代碼運行,可以迭代它!
下面是代碼的輸出,如果你不修改它,就是所謂的字典。
你會注意到逗號分隔起來的括號的 key-value 列表。每個括號內的列表都代表了我們 dataframe 中的一行,每列都以 key 表示:我們正在處理一個國家的排名,人均 GDP(以美元表示)及其名稱(用「國家」)。
有關數據結構,如列表和詞典,如何在 Python 中的運行的更多信息,本篇將有所幫助。
幸運的是,為了將數據移動到 Pandas dataframe 中,我們不需要理解這些數據,
這是將數據聚合到 SQL 表或 Excel 電子表格的類似方式。
使用一行代碼,我們已經將這些數據分配并保存到 Pandas dataframe 中 —— 事實證明是這種情況,字典是要轉換為 dataframe 的完美數據格式。
通過這個簡單的 Python 賦值給變量 gdp,我們現在有了一個 dataframe,可以在我們編寫 gdp 的時候打開和瀏覽。我們可以為該詞添加 Python 方法,
以創建其中的數據的策略視圖。
作為我們剛剛在 Python 中使用等號和賦值的一點深入了解,很有幫助。
03?快速查看數據
現在,如果要快速查看我們所做的工作,我們可以使用 head() 方法,它與 Excel 中的選擇幾行或SQL中的 LIMIT 方法非常相似。輕松地使用它來快速查看數據集,而無需加載整個數據集!如果要查看特定數量的行,還可以在 head() 方法中插入行數。
我們得到的輸出是人均 GDP 數據集的前五行(head 方法的默認值),我們可以看到它們整齊地排列成三列以及索引列。請注意,
Python 索引從0開始,而不是1,
這樣,如果要調用 dataframe 中的第一個值,則使用0而不是1!你可以通過在圓括號內添加你選擇的數字來更改顯示的行數。試試看!
04?重命名列
有一件你在 Python 中很快意識到的事是,具有某些特殊字符(例如$)的名稱處理可能變得非常麻煩。我們將要
重命名某些列
,在 Excel 中,可以通過單擊列名稱并鍵入新名稱,在SQL中,你可以執行 ALTER TABLE 語句或使用 SQL Server 中的 sp_rename。
在 Pandas 中,這樣做的方式是rename 方法。
在實現上述方法時,我們將使用列標題?
「gdp_per_capita」?替換列標題「US $」
。一個快速的 .head() 方法調用確認已經更改。
05?刪除列
有一些數據損壞!如果你查看 Rank 列,你會注意到散亂的隨機破折號。這不是很好,由于實際的數字順序被破壞,這使得 Rank 列無用,特別是使用 Pandas 默認提供的編號索引。
幸運的是,使用內置的 Python 方法:
del
,刪除列變得很容易。
現在,通過另外調用 head 方法,我們可以確認 dataframe 不再包含 rank 列。
06?在列中轉換數據類型
有時,給定的數據類型很難使用。這個方便的教程將分解 Python 中不同數據類型之間的差異,以便你需要復習。
在 Excel 中,你可以右鍵單擊并找到將列數據轉換為不同類型的數據的方法。你可以復制一組由公式呈現的單元格,并將其粘貼為值,你可以使用格式選項快速切換數字,日期和字符串。
有時候,在 Python 中切換一種數據類型為其他數據類型并不容易,但當然有可能。
我們首先在 Python 中使用 re 庫。我們將使用
正則表達式來替換 gdp_per_capita 列中的逗號
,以便我們可以更容易地使用該列。
re.sub 方法本質上是使用空格替換逗號。以下詳細介紹了 re庫?的各個方法。
現在我們已經刪除了逗號,我們可以輕易地將列轉換為數字。
現在我們可以計算這列的平均值。
我們可以看到,人均 GDP 的平均值約為13037.27美元,如果這列被判斷為字符串(不能執行算術運算),我們就無法做到這一點?,F在,可以對我們以前不能做的人均 GDP 列進行各種計算,包括通過不同的值過濾列,并確定列的百分位數值。
07?選擇/過濾數據
任何數據分析師的基本需求是
將大型數據集分割成有價值的結果。
為了做到這一點,你必須檢查一部分數據:這對選擇和過濾數據是非常有幫助的。在 SQL 中,這是通過混合使用 SELECT 和不同的其他函數實現的,而在 Excel 中,可以通過拖放數據和執行過濾器來實現。
你可以使用 Pandas 庫不同的方法或查詢快速過濾。
作為一個快速的代表,只顯示人均 GDP 高于 5 萬美元的國家。
這是這樣做到的:
我們為一個新的 dataframe 分配一個布爾索引的過濾器,這個方法基本上就是說「創建一個人均 GDP 超過 50000 的新 dataframe」。現在我們可以顯示gdp50000。
有12個國家的 GDP 超過 50000!
選擇屬于以 s 開頭的國家的行。
現在可以顯示一個新 dataframe,其中只包含以 s 開頭的國家。使用 len 方法快速檢查(一個用于計算 dataframe 中的行數的救星!)表示我們有 25 個國家符合。
要是我們想把這兩個過濾條件連在一起呢?
這里是連接過濾的方法。在多個過濾條件之前,你想要了解它的工作原理。你還需要了解 Python 中的基本操作符。為了這個練習的目的,你只需要知道
「&」代表 AND,而「|」代表 Python 中的 OR。
然而,通過更深入地了解所有基礎運算符,你可以用各種條件輕松地處理的數據。
讓我們繼續工作,并在過濾選擇以「S」開頭且有大于 50,000 人均 GDP 的國家。
現在過濾以「S」開頭 或人均 GDP 超過 50000 的國家。
我們正在努力處理 Pandas 中的過濾視圖。
08?用計算機來處理數據
沒有可以幫助計算不同的結果的方法,那么 Excel 會變成什么?
在這種情況下,Pandas 大量依賴于 numpy 庫和通用 Python 語法將計算放在一起。對我們一直在研究的 GDP 數據集進行一系列簡單的計算。例如,計算人均國民生產總值超過 5 萬的總和。
這將給你答案為 770046 。使用相同的邏輯,我們可以計算各種的值 — 完整列表位于左側菜單欄下的計算/描述性統計部分的 Pandas 文檔。
09?數據可視化(圖表/圖形)
數據可視化是一個非常強大的工具 – 它允許你以可理解的格式與其他人分享你獲得的見解。畢竟,一張照片值得一千字。SQL 和 Excel 都具有將查詢轉換為圖表和圖形的功能。使用 seaborn 和 matplotlib 庫,你可以使用 Python 執行相同操作。
有關數據可視化選項的綜合的教程 – 我最喜歡的是這個 Github readme document (全部在文本中),它解釋了如何在 Seaborn 中構建概率分布和各種各樣的圖。這應該讓你了解 Python 中數據可視化的強大功能。如果你感到不知所措,你可以使用一些解決方案,如Plot.ly,這可能更直觀地掌握。
我們不會檢查每一個數據可視化選項,只要說使用 Python,可以比任何 SQL 提供的功能具有更強大的可視化功能,必須權衡
使用 Python 獲得更多的靈活性,
以及在 Excel 中通過模板生成圖表的簡易性。
在這種情況下,我們將建立一個簡單的直方圖,顯示人均 GDP 超過 5 萬美元的國家的人均 GDP 分布。
有了這個強大的直方圖方法 (hist()),我們現在可以生成一個直方圖,顯示出大部分人均 GDP 在 5 萬到 7 萬美元之間!
10?分組和連接數據
在 Excel 和 SQL 中,諸如 JOIN 方法和數據透視表之類的強大工具可以快速匯總數據。
Pandas 和 Python 共享了許多從 SQL 和 Excel 被移植的相同方法。可以
在數據集中對數據進行分組,并將不同的數據集連接在一起。
你可以看看這里的文檔。你會發現,由 Pandas 中的merge 方法提供的連接功能與 SQL 通過 join 命令提供的連接功能非常相似,而 Pandas 還為過去在 Excel 中使用數據透視表的人提供了 pivot table 方法。
我們將制定的人均 GDP 的表格與世界銀行的世界發展指數清單進行簡單的連接。
首先導入世界發展指數的 .csv文件。
使用 .head() 方法快速查看這個數據集中的不同列。
現在我們完成了,我們可以快速看看,添加了幾個可以操作的列,包括不同年份的數據來源。
現在我們來合并數據:
我們現在可以看到,這個表格包含了人均 GDP 列和具有不同列的遍及全國的數據。對于熟悉 SQL join 的用戶,你可以看到我們正在對原始 dataframe 的 Country 列進行內部連接。
現在我們有一個連接表,我們希望將國家和人均 GDP 按其所在地區進行分組。
我們現在可以使用 Pandas 中的 group 方法排列按區域分組的數據。
要是我們想看到 groupby 總結的永久觀點怎么辦?Groupby 操作創建一個可以被操縱的臨時對象,但是它們不會創建一個永久接口來為構建聚合結果。為此,我們必須使用 Excel 用戶的舊喜愛:數據透視表。幸運的是,Pandas 擁有強大的數據透視表方法。
你會看到我們收集了一些不需要的列。幸運的是,使用 Pandas 中的 drop 方法,你可以輕松地刪除幾列。
現在我們可以看到,人均 GDP 根據世界不同地區而不同。我們有一個干凈的、包含我們想要的數據的表。
這是一個非常膚淺的分析:你想實際做一個加權平均數,因為每個國家的人均 GDP 不代表一個群體中每個國家的人均 GDP,因為在群體中的人口不同。
事實上,你將要重復我們所有的計算,包括反映每個國家的人口列的方法!看看你是否可以在剛剛啟動的 Python notebook 中執行此操作。如果你可以弄清楚,你將會很好地將 SQL 或 Excel 知識轉移到 Python 中。
文章轉載:菜鳥學Python
(版權歸原作者所有,侵刪)
python培訓哪家好
python培訓排名
馬哥教育
上一篇:
Numpy怎么使用最高效,5個技巧送給你!
下一篇:
Python 3.10終于來了,switch語法終于出現
相關新聞
Golang 閉包的實現
【Python面試真題】- 什么是Flask?
go也能依賴注入?進來細說
【Python面試真題】- 寫爬蟲是用多進程好?還是多線程好? 為什么?
Python 最難的問題你猜是什么?
沒有基礎來培訓獲得高薪
su【每日一個知識點第381期-Linux】
簡單、易用的 MySQL 官方壓測工具,建議收藏!
調試你的Python代碼
【Python面試題】怎樣獲取字典中所有鍵的列表?
電話咨詢
在線咨詢
歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!
主站蜘蛛池模板:
娄底市
|
桐柏县
|
上高县
|
华阴市
|
墨玉县
|
达拉特旗
|
车致
|
镇巴县
|
湘西
|
周至县
|
土默特左旗
|
兴和县
|
五家渠市
|
临西县
|
北碚区
|
巴彦淖尔市
|
中江县
|
宣汉县
|
宁海县
|
周口市
|
正镶白旗
|
项城市
|
抚州市
|
新乡市
|
孟津县
|
遂川县
|
新干县
|
新巴尔虎右旗
|
九寨沟县
|
随州市
|
旅游
|
秭归县
|
汪清县
|
和田市
|
确山县
|
隆子县
|
札达县
|
徐汇区
|
扶余县
|
浮山县
|
钟祥市
|