本文目錄一覽:
Python 數據處理(二十四)—— 索引和選擇
如果你想獲取 ‘A’ 列的第 0 和第 2 個元素,你可以這樣做:
這也可以用 .iloc 獲取,通過使用位置索引來選擇內容
可以使用 .get_indexer 獲取多個索引:
警告 :
對於包含一個或多個缺失標籤的列表,使用 .loc 或 [] 將不再重新索引,而是使用 .reindex
在以前的版本中,只要索引列表中存在至少一個有效標籤,就可以使用 .loc[list-of-labels]
但是現在,只要索引列表中存在缺失的標籤將引發 KeyError 。推薦的替代方法是使用 .reindex() 。
例如
索引列表的標籤都存在
先前的版本
但是,現在
索引標籤列表中包含不存在的標籤,使用 reindex
另外,如果你只想選擇有效的鍵,可以使用下面的方法,同時保留了數據的 dtype
對於 .reindex() ,如果有重複的索引將會引發異常
通常,您可以將所需的標籤與當前軸做交集,然後重新索引
但是,如果你的索引結果包含重複標籤,還是會引發異常
使用 sample() 方法可以從 Series 或 DataFrame 中隨機選擇行或列。
該方法默認會對行進行採樣,並接受一個特定的行數、列數,或數據子集。
默認情況下, sample 每行最多返回一次,但也可以使用 replace 參數進行替換採樣
默認情況下,每一行被選中的概率相等,但是如果你想讓每一行有不同的概率,你可以為 sample 函數的 weights 參數設置抽樣權值
這些權重可以是一個列表、一個 NumPy 數組或一個 Series ,但它們的長度必須與你要抽樣的對象相同。
缺失的值將被視為權重為零,並且不允許使用 inf 值。如果權重之和不等於 1 ,則將所有權重除以權重之和,將其重新歸一化。例如
當應用於 DataFrame 時,您可以通過簡單地將列名作為字元串傳遞給 weights 作為採樣權重(前提是您要採樣的是行而不是列)。
sample 還允許用戶使用 axis 參數對列進行抽樣。
最後,我們還可以使用 random_state 參數為 sample 的隨機數生成器設置一個種子,它將接受一個整數(作為種子)或一個 NumPy RandomState 對象
當為該軸設置一個不存在的鍵時, .loc/[] 操作可以執行放大
在 Series 的情況下,這實際上是一個追加操作
可以通過 .loc 在任一軸上放大 DataFrame
這就像 DataFrame 的 append 操作
由於用 [] 做索引必須處理很多情況(單標籤訪問、分片、布爾索引等),所以需要一些開銷來搞清楚你的意圖
如果你只想訪問一個標量值,最快的方法是使用 at 和 iat 方法,這兩個方法在所有的數據結構上都實現了
與 loc 類似, at 提供了基於標籤的標量查找,而 iat 提供了基於整數的查找,與 iloc 類似
同時,你也可以根據這些索引進行設置值
如果索引標籤不存在,會放大數據
另一種常見的操作是使用布爾向量來過濾數據。運算符包括:
|(or) 、 (and) 、 ~ (not)
這些必須用括弧來分組,因為默認情況下, Python 會將 df[‘A’] 2 df[‘B’] 3 這樣的表達式評估為 df[‘A’] (2 df[‘B’]) 3 ,而理想的執行順序是 (df[‘A’] 2) (df[‘B’] 3)
使用一個布爾向量來索引一個 Series ,其工作原理和 NumPy ndarray 一樣。
您可以使用一個與 DataFrame 的索引長度相同的布爾向量從 DataFrame 中選擇行
列表推導式和 Series 的 map 函數可用於產生更複雜的標準
我們可以使用布爾向量結合其他索引表達式,在多個軸上索引
iloc 支持兩種布爾索引。如果索引器是一個布爾值 Series ,就會引發異常。
例如,在下面的例子中, df.iloc[s.values, 1] 是正確的。但是 df.iloc[s,1] 會引發 ValueError 。
python為什麼做數據分析好
究其原因,主要有以下幾點:
①Python的語法簡單,代碼可讀性高,易於上手,有利於初學者學習;當我們處理數據時,我們希望使數據數字化並將其轉換為計算機可以操作的數字形式。我們可以直接使用一個行列表推導來完成,這非常簡單。
②Python在數據分析和交互,探索性計算和數據可視化方面擁有非常成熟的庫和活躍的社區,這使Python成為數據任務處理的重要解決方案。在數據處理和分析方面,Python具有numpy,pandas,Matplotlib,scikit-learn,IPython和其他出色的庫和工具,尤其是pandas在數據處理方面具有絕對優勢。
③Python具有很強的通用編程能力,這與別的編程語言不同。Python不僅在數據分析方面功能強大,而且在爬蟲,web,運維甚至遊戲等領域也發揮著非常重要的作用。公司只需一項技術即可完成所有服務,這有利於業務整合併可以提高工作效率。
④Python是人工智慧的首選編程語言。在人工智慧時代,Python已成為最受歡迎的編程語言。得益於Python語法簡潔,豐富的庫和社區,大多數深度學習框架都優先支持Python語言。
數據分析 為什麼用python
究其原因,主要有以下幾點:
①Python的語法簡單,代碼可讀性高,易於上手,有利於初學者學習;當我們處理數據時,我們希望使數據數字化並將其轉換為計算機可以操作的數字形式。我們可以直接使用一個行列表推導來完成,這非常簡單。
②Python在數據分析和交互,探索性計算和數據可視化方面擁有非常成熟的庫和活躍的社區,這使Python成為數據任務處理的重要解決方案。在數據處理和分析方面,Python具有numpy,pandas,Matplotlib,scikit-learn,IPython和其他出色的庫和工具,尤其是pandas在數據處理方面具有絕對優勢。
③Python具有很強的通用編程能力,這與別的編程語言不同。Python不僅在數據分析方面功能強大,而且在爬蟲,web,運維甚至遊戲等領域也發揮著非常重要的作用。公司只需一項技術即可完成所有服務,這有利於業務整合併可以提高工作效率。
④Python是人工智慧的首選編程語言。在人工智慧時代,Python已成為最受歡迎的編程語言。得益於Python語法簡潔,豐富的庫和社區,大多數深度學習框架都優先支持Python語言。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/235538.html