• <tfoot id="ukgsw"><input id="ukgsw"></input></tfoot>
    
    • 久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
      分享

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

       東西二王 2019-05-11

      為了便于分析,我們將使用Python中的panda庫。因此,如果您還沒有安裝這個庫,請在命令提示符中使用以下代碼之一來安裝panda:

      # If you use Anaconda, type the following in anaconda prompt conda install -c anaconda pandas # If you use pip, type the following in command prompt pip install pandas

      此外,我假定您已經對Python和pandas庫有了基本的了解。但是不用擔心,如果你還沒有接觸到上面的任何一個,我們將從頭到尾進行詳細介紹。

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      我們的數據集

      為了能夠使用上述技術,我們需要數據。我們可以導入csv文件或excel文件,但現在我們只需要用pandas簡單地創建一個小數據集。

      以下代碼將生成一個pandas數據框。

      import pandas as pd
      df = pd.DataFrame({'ID': ['A1', 'A1', 'B1', 'B1', 'C1', 'C1', 'D1', 'D1'],
       'Value': [100, 120, 90, 80, 140, 30, 60, 210],
       'Date': pd.date_range('20190407', periods=8)})

      這里顯示以下數據框。

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      如上所述,你可以看到ID,Value和Date。

      1 基本的過濾

      我們已經加載了pandas庫和創建了數據集,我們開始第一個技術。當你想基于列的值獲得數據的子集時,我們在談論過濾數據。

      在pandas我們有多種方式做這個事情,現在我們看一下最常用的方式。

      1. 用[]的布爾索引

      2. 用.loc的布爾索引

      用[]過濾數據如下

      # Boolean indexing with square brackets df[df['Value'] > 100]

      在pandas中的過濾邏輯是將條件傳遞給方括號之間的DataFrame.

      df[condition]

      給我們輸出如下結果

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      用.loc過濾

      # Boolean indexing with .loc df.loc[df['Value'] > 100]

      正如所料,它給出了相同的輸出,因為我們應用了相同的過濾器。

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      哪個更適合使用?對于基本過濾器,正如我們上面看到的,沒有區別或首選項,這取決于您更喜歡哪種代碼語法。但是,當您想應用更高級的數據選擇時,.loc提供了這一功能,并且可以執行更復雜的選擇和切片。但現在不用擔心。

      2 基于條件過濾

      我們使用了第一個過濾器,非常直接。但是假設你想應用一個有多個條件的過濾器。我們如何在pandas做到這一點?為此,我們研究了Python操作符。

      2.1 &操作符

      例如,您希望過濾ID等于C1且值大于100的所有行。

      要應用這個過濾器,我們必須用&運算符連接兩個條件。這看起來像這樣:

      # Filtering with multiple conditions '&' operator
      df[(df['ID'] == 'C1') & (df['Value'] > 100)]

      并將返回以下輸出:

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      正如預期的那樣,我們返回一行,因為只有這一行滿足我們在過濾器中設置的條件。

      2.2 |操作符

      Python中的|操作符代表or,如果滿足其中一個條件,則返回True。

      我們可以通過應用以下過濾器來顯示這一點:給出日期晚于2019-04-10或值大于100的所有行。

      在Python代碼中,它看起來像這樣:

      # Filtering with multiple conditions 'or' operator condition = (df['Date'] > '2019-04-10') | (df['Value'] > 100) df[condition]

      并將返回以下輸出:

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      正如預期的那樣,返回的所有行都具有大于100的值,或者日期在2019-04-10之后。

      3 聚合

      有時需要聚合數據,以便創建特定的視圖或進行一些計算。在pandas中,我們使用groupby。

      那么groupby到底是什么呢?如果我們引用pandas文檔:

      我們所說的“分組”是指涉及下列一項或多項步驟的程序:

      根據一些標準將數據分成若干組。

      獨立地對每個組應用一個函數。

      將結果組合成數據結構。

      基本上,它是根據一些指標,將數據分組,讓你自己對這些組做一些操作。

      3.1 Groupby 獲得總和

      讓我們看一個例子。假設我們想要基于ID得到每個組的value的總值。這就像下面的Python代碼:

      # Get the total value of each group based on ID
      df.groupby('ID', as_index=False)['Value'].sum()

      將為我們提供以下結果

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      所以如果我們再看看我們的DataFrame,我們可以看到這是正確的:

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      例如ID A1的總value是100 120 = 220,這是正確的。

      Groupby:獲得最大日期

      pandas提供了一個大范圍的函數,您可以在使用groupby之后對您的組使用這些函數。讓我們再看一個。例如,我們可以使用.max()函數獲得每個組的最大日期。

      就像這樣

      # Get the highest date of each group df.groupby('ID', as_index=False)['Date'].max()

      輸出結果如下:

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      4 連接

      連接是基于一個公共列以并排的方式組合兩個數據框。大多數情況這些列被當做主鍵列。

      join這個術語起源于數據庫語言SQL,之所以需要它,是因為SQL數據庫的數據建模大多是通過關系建模來完成的。

      連接有很多類型,您的輸出將基于執行的連接類型。由于這是一個入門教程,我們將介紹最常見的一個:inner join。在本系列后面的部分中,我們將研究更復雜的連接。

      內部連接來自韋恩圖表示兩個集合的交集部分。因此,當我們將其轉換為數據時,內部連接將返回兩個數據框中都存在的行。

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      4.1 我們的數據集

      因為我們想合并兩個數據框,所以我們將創建新的數據。這兩個虛構的數據集表示customer主表和orders表。

      使用下面的代碼,我們創建了兩個新的數據框:

      # Dataset 1 - Customer Table
      dfA = pd.DataFrame({'Customer_ID':[1, 2, 3, 4, 5],
       'Name': ['GitHub', 'Medium', 'Towardsdatascience', 'Google', 'Microsoft'],
       'City': ['New York', 'Washington', 'Los Angeles', 'San Francisco', 'San Francisco']})
      # Dataset 2 - Orders 
      dfB = pd.DataFrame({'Order_ID': [1, 2, 3, 4, 5, 6, 7],
       'Order_date': pd.date_range('20190401', periods=7),
       'Amount':[440, 238, 346, 637, 129, 304, 892],
       'Customer_ID':[4, 3, 4, 1, 2, 5, 5]})

      它們看起來像這樣:

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      因此,我們要對新數據進行邏輯分析,得到orders表中每個訂單表的客戶名稱和城市。這是一個典型的連接問題,按行匹配兩個dataframes,并用更多的列充實數據。在本例中,鍵列是Customer_ID。

      在pandas中,我們使用merge方法進行連接。我們將把以下參數傳遞給這個方法:

      • 您想加入哪個數據框(dfA、dfB)。

      • 關鍵列是什么(Customer_ID)。

      • 您希望執行哪種類型的連接(內部連接)。

      在merge方法中,我們可以使用的參數比上面列出的更多,但目前這些參數已經足夠了。

      我們想要執行的合并在pandas中看起來如下:

      pd.merge(left=dfB, right=dfA, on='Customer_ID', how='inner' )

      正如我們所期望的,name和city列被添加到每個對應的customer_ID旁邊。

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      以上就是本部分的內容:使用Python,每個數據分析師都應該知道的基本數據分析技術。

      最后檸檬為大家準備了一些python的學習教程分享,希望可以幫助到大家。

      用Python做數據分析,這些基本數據分析技術你知道嗎?贈學習資料

      獲取方式:請大家轉發 關注并私信小編關鍵詞:“資料”即可獲取。

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發表

        請遵守用戶 評論公約

        類似文章 更多

        主站蜘蛛池模板: 国偷自产一区二区三区在线视频| 在线播放亚洲成人av| 中文字幕亚洲国产精品| 亚洲另类丝袜综合网| 欧美人与禽2O2O性论交| 人妻一区二区三区三区| 国产99视频精品免视看9| 欧美大bbbb流白水| 国产成人精品亚洲日本在线观看| 一区二区三区无码免费看| 久久精品手机观看| 国产在沙发上午睡被强| 好湿好爽好疼免费视频| 欧美伊人久久大香线蕉综合| 被公疯狂玩弄的年轻人妻| 久久久久香蕉国产线看观看伊| 亚洲欧美中文字幕日韩一区二区| 亚洲欧美日韩国产综合一区二区| 久久超碰色中文字幕超清| 少妇高潮喷水正在播放 | 亚洲男女内射在线播放| 色一情一乱一伦麻豆| 欧洲卡一卡二卡三爱区| 亚洲一区成人av在线| 亚洲AV永久无码精品一福利| 色天天天综合网色天天| 99久久亚洲综合精品成人网| 私人毛片免费高清影视院| 中文字幕亚洲精品人妻| 日韩内射美女人妻一区二区三区| 天天做日日做天天添天天欢公交车| 亚洲av无码成人精品区一区| 中文字幕理伦午夜福利片| 欧美高清狂热视频60一70| 亚洲尤码不卡av麻豆| 大帝AV在线一区二区三区| 男女18禁啪啪无遮挡激烈| 日韩精品人妻中文字幕| 午夜无码片在线观看影院A| 国产精品自在线拍国产| 成人做受120秒试看试看视频|