pandas describe函数_SQL和Pandas同时掉到河里,你先救谁?
今日份知識你攝入了么?
在我的數據分析生涯中,我幾乎完全是在SQL中鍛煉我的技能。雖然SQL可以做一些非常酷的事情,但它有它的局限性 - 這些限制在很大程度上讓我決定了要不要去感受數據科學別的巨大魅力。在我之前的數據崗位中,我需要分析來自外部源的數據文件和工具,但這些工具限制了它可以處理的數據量或花費過多的時間,使任務變得幾乎不可能徹底完成。
在我所有職位中有一個數據pipeline有點像這樣:
當我們收到了來自外部來源的數據,需要進行質量分析而且我們需要理解ETL的要求。當我們使用excel來做這件事的時候,任何嘗試使用excel進行大型文件分析的人都知道這是一場噩夢。所以我們編寫excel宏,但由于每個數據文件都是如此不同,所以它們并不有用。其他數據分析的工具通常不是天上掉下來的,得花錢的,但是幫你付錢的爸爸如果不能切身感受到你的pain,那他們就會拒絕做你的爸爸。
但是世界在我搜索了 Python Pandas Library 變得清涼了。
臥槽,這么刺激免費有用高級的東西!我居然現在才發現!
Pandas
Pandas與SQL不同,Pandas有內置方程。當數據已經是文件格式(.csv,.txt,.tsv等)時,Pandas允許我們在不影響數據庫資源的情況下處理數據集。
我將解釋并展示一些我真正喜歡的功能的例子:
pandas.read_csv()
首先,我們需要將數據存為data frame。一旦我們將其設置為變量名稱(下面的“df”),我們就可以使用其他函數來分析和操作數據。在將數據加載到data frame時,我使用了'index_col'參數,這個參數將第一列(index = 0)設置為數據幀的row label。有時我們需要調整多個參數來讓我們的data變成正確的format。如果這個dataframe被設為為一個variable, 那么這個方程不會返回output, 但你可以用下面的方程來觀察數據。
# Command to import the pandas library to your notebook
import pandas as pd
# Read data from Titanic dataset.
df = pd.read_csv('...titanic.csv', index_col=0)
# Location of file, can be url or local folder structure
pandas.head()
head方程非常有用,只需在我們之前的的dataframe的variable名稱后加.head(), 默認設置是顯示前5行,但咱們也可以通過調整數值來改變 例如.head(10)。
df.head()
前5行的數據
我們可以看到數據里有一些String,Int,Float,有些列有NaN值。
http://pandas.info()
info方程將給出數據幀列的細分以及每個列的非空條目數, 而且還會告訴我們每列的數據類型以及數據框中的總條目數。
http://df.info()
pandas.describe()
describe函數對于查看數據的分布非常有用,特別是像int和float這樣的int類型。如下所示,它將返回一個數據框其中包含每列的均值,最小值,最大值,標準差等。
df.describe()
如果我們要查看不僅僅numeric而是所有類型的variable,就必須使用include參數。但值得注意的是“unique”,“top”和“freq”會被加入進dataframe中。這些僅針對非Numeric數據類型和NaN顯示。對于這些新的Row,其他對應數字的細分都是NaN。
df.describe(include= 'all')
pandas.isna()
單獨的is.na 方程自己不是非常的有用,它將返回整個數據幀為False,如果有NaN或NULL值,返回True。如果你在is.na()中包含.sum(),那么你將獲得類似下面的輸出,顯示每列的NaN或NULL的個數。
df.isna().sum()
pandas.plot()
Pandas繪圖功能對于快速可視化數據非常有用,這個此函數使用matplotlib進行可視化.
df.plot(x ='age',y ='fare',kind ='scatter')
這些只是我用于初始數據分析的一些有用的Pandas函數。我們可以在此處找到更多關于pandas的用法。
什么時候使用SQL? 什么時候使用 Pandas?
使用哪種工具取決于數據存儲的位置,想要使用的數據和自己的優勢。如果你的數據屬于文件格式,則無需使用SQL進行任何操作。如果你的數據來自數據庫,那么咱們應該通過以下問題來了解應該使用SQL。
如果你只有寫一個 query 的權限,真正運行是別人來做的話,你大概就不能真正透徹地了解你的這組數據。這個時候,你要做的就是把你覺得你可能需要的所有數據都 pull 下來,然后導出成一個 csv,然后用 Pandas 去處理。
或者
如果你知道你要 run 的這個 query 會占用這個數據庫很大的資源,然后數據庫的 admin 大概率會不爽的話,那你就在數據庫之外用 Pandas 處理。盡量避免在你的 query 里使用 SELECT*,特別是你無法琢磨你的 table 里會生存多少數據的時候。
如果你已經知道你將如何處置你的數據了,比如你打算加哪些具體的 filter,或者把數據 join 進某個具體的 table,或者把兩組數據通過某種計算或者集合 combine 一下,等等;那這個時候選擇使用 SQL 會簡單一些。你可以通過 SQL 把你的數據都 pull 下來然后導成一個 CSV 再來進行接下來的數據分析或者建模等等。
這其實是最重要的一個問題,你知道自己最強的地方在哪么?如果你知道自己和誰相處更舒適一些,那就不要猶豫!貼緊它!榨干它!做整條街最靚的仔!
總結一下:
這兩個工具都非常有用,我建議大家同時學習。該組合將使我們能夠更有效地進行廣泛的數據分析和操作。很快,你將不再需要處理令人崩潰的Excel了。來加入我們!
總結
以上是生活随笔為你收集整理的pandas describe函数_SQL和Pandas同时掉到河里,你先救谁?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python高级语言设计我是卧底_Pyt
- 下一篇: python爬虫中for循环无法每一段输