這也可以通過。iloc,並且可以通過使用位置索引來選擇內容。
妳可以用。獲取多個索引的get_indexer:
警告:
對於缺少壹個或多個標記的列表,使用。loc或[]不會重新索引,而是使用。請改為reindex。
在以前的版本中,您可以使用。只要索引列表中至少有壹個有效的標簽。
但是現在,只要索引列表中有缺失的標簽,就會拋出KeyError。推薦的替代方法是使用。重新索引()。
例如
索引列表的標簽都存在。
先前版本
但是現在,
選項卡列表包含不存在的選項卡。使用reindex。
此外,如果您只想選擇有效的鍵,可以使用以下方法,同時保留數據的dtype。
因為。如果有重復的索引,將拋出壹個異常。
通常,您可以將所需標簽與當前軸相交並重新索引。
但是,如果您的索引結果包含重復的標簽,它仍然會拋出壹個異常。
使用sample()方法從系列或數據幀中隨機選擇行或列。
默認情況下,此方法對行進行采樣,並接受特定數量的行、列或數據子集。
默認情況下,每行最多返回壹次sample,但是您也可以使用replace參數進行替換采樣。
默認情況下,每壹行被選中的概率是相等的,但是如果希望每壹行具有不同的概率,可以為sample函數的weights參數設置采樣權重。
這些權重可以是壹個列表、壹個NumPy數組或壹個序列,但它們的長度必須與要采樣的對象的長度相同。
缺失值被視為零權重,並且不允許使用inf值。如果權重之和不等於1,則將所有權重除以權重之和,並再次歸壹化。例如
當應用於DataFrame時,您可以簡單地將列名作為字符串傳遞給weights作為采樣權重(假設您希望對行而不是列進行采樣)。
Sample還允許用戶使用axis參數對列進行采樣。
最後,我們可以使用random_state參數為sample的隨機數生成器設置壹個種子,該生成器將接受壹個整數(作為種子)或壹個NumPy RandomState對象。
當為軸設置了不存在的鍵時。loc/[]操作可以進行放大。
對於Series,這實際上是壹個追加操作。
您可以通過放大任意軸上的數據框。loc。
這就像DataFrame的追加操作。
因為用[]做索引必須處理很多情況(單標簽訪問、碎片、布爾索引等。),搞清楚妳的意圖需要壹些開銷。
如果只想訪問標量值,最快的方法是使用at和iat方法,它們在所有數據結構中都實現了。
類似於loc,at提供基於標簽的標量查找,而iat提供基於整數的查找,類似於iloc。
同時,妳也可以根據這些指標來設置值。
如果該選項卡不存在,數據將被放大。
另壹種常見的操作是使用布爾向量來過濾數據。運營商包括:
|(或)、(和)、(非)
這些必須用括號分組,因為默認情況下,Python會把df[' a ']>;2 & ampdf[' B ']& lt;3這樣的表達式計算結果為df[' a ']>;(2 & ampdf[' B '])& lt;3,而理想的執行順序是(df[' a ']>;2)& amp;(df[' B ']& lt;3)
使用布爾向量對序列進行索引的工作原理與NumPy ndarray相同。
您可以使用與數據幀具有相同索引長度的布爾向量來從數據幀中選擇行。
系列的列表派生和映射功能可用於生成更復雜的標準。
我們可以使用布爾向量結合其他索引表達式在多個軸上進行索引。
Iloc支持兩種布爾索引。如果索引器是布爾序列,將引發異常。
例如,在以下示例中,df.iloc[s.values,1]是正確的。但是,df.iloc[s,1]將引發ValueError。