『壹』 pandas將某一行設置為列索引(python)
b[b.['state']=='ohio'].index
In [36]: list(df['state']).index('ohio')
Out[36]: 0
In [37]: list(df['state']).index('nevada')
Out[37]: 1
訪問某一列可以通過b['state']和b.state這兩種方法進行,但是輸出的pandas裡面的Series這種數據類型,因此b['state'].index()返回Index([0,1], dtype=object)。
因為數據分析知某個值並不是非常重要,所以沒有直接輸出索引值的函數,可以通過query()函數,b.query('state == "obio"'),輸出含有ohio的行自然也就知道索引。
(1)python索引行名擴展閱讀:
索引是為了加速對表中數據行的檢索而創建的一種分散的存儲結構。索引是針對表而建立的,它是由數據頁面以外的索引頁面組成的,每個索引頁面中的行都會含有邏輯指針,以便加速檢索物理數據。
在資料庫關系圖中,可以在選定表的「索引/鍵」屬性頁中創建、編輯或刪除每個索引類型。當保存索引所附加到的表,或保存該表所在的關系圖時,索引將保存在資料庫中。
在資料庫系統中建立索引主要有以下作用:
(1)快速取數據;
(2)保證數據記錄的唯一性;
(3)實現表與表之間的參照完整性;
(4)在使用ORDER by、group by子句進行數據檢索時,利用索引可以減少排序和分組的時間。
『貳』 如何在python列表中查找某個元素的索引
1、方法一: 利用數組自身的特性 a.index(target), 其中a是目標list,target是需要的下標對應的值。代碼如下:
2、分片:
分片用於截取某個范圍內的元素,通過:來指定起始區間(左閉右開區間,包含左側索引值對應的元素,但不包含右測索引值對應的元素)。
分片包括起始索引對應的元素,但不包括終止索引對應的元素,索引為正值時可以發生越界但只會取到最後一個元素。如果索引值為負值,則表示從最右邊元素開始,此時需避免索引越界。
『叄』 python怎麼把某行設為索引
主鍵是表中的一個或多個欄位,它的值用於惟一地標識表中的某一條記錄.且不能為空;
索引是對資料庫表中一列或多列的值進行排序的一種結構,只有當經常查詢索引列中的數據時,才需要在表上創建索引,使用索引可快速訪問資料庫表中的特定信息。
索引佔用磁碟空間,並且降低添加、刪除和更新行的速度。當然索引也有好處就是查詢速度快,它利還是大於弊的所以請慎重使用索引。
『肆』 python如何通過文件名前的編號索引出完整的文件名
用os.walk(path)遍歷文件夾A得到A文件夾下所有的文件以及目錄,根據獲取到的所有的文件名,通過if name in file_name 來過濾出你要的文件
import os
for root, path, names in os.walk(r'D: est'):
print(root, path, names)
for name in names:
if 'a' in name:
print('---------')
print(name)
print('---------')
『伍』 python(pandas模塊)
1.什麼是pandas? numpy模塊和pandas模塊都是用於處理數據的模塊。 numpy主要用於針對數組進行統計計算,處理數字數據比較方便。 pandas除了可以處理數字數據,還可...
『陸』 index在python中的用法
如下:
1、index函數:用於從列表中找出某個值第一個匹配項的索引位置。
2、index方法語法:list.index(x[,start[,end]])。
3、參數:x-- 查找的對象。start-- 可選,查找的起始位置。end-- 可選,查找的結束位置。
4、返回值:該方法返回查找對象的索引位置,如果沒有找到對象則拋出異常。
5、實例:
代碼:str1="thisisstringexample....wow!!!";str2="exam"。
index函數為print(str1.index(str2))。
python中index函數怎麼用?
Python中index方法檢測字元串中是否包含子字元串 str ,如果指定 beg(開始) 和 end(結束) 范圍,則檢查是否包含在指定范圍內,該方法與 python find方法一樣,只不過如果str不在string中會報一個異常。
index函數一般用處是在序列中檢索參數並返回第一次出現的索引,沒找到就會報錯。
『柒』 Python的pandas 數組如何得到索引值,如圖,我要得到ohio 的索引值,應該怎樣做
你列的這個是pandas裡面的數據框DataFrame數據類型,其實和R語言裡面的差不多。訪問某一列可以通過b['state']和b.state這兩種方法進行,但是輸出的pandas裡面的Series這種數據類型,因此b['state'].index()返回Index([0,1], dtype=object)。因為數據分析某個值並不是非常重要,所以據我所知沒有直接輸出索引值的函數,不過可以通過query()函數,b.query('state == "obio"'),輸出含有ohio的行自然也就知道了索引了。
『捌』 Python 數據處理(二十九)—— MultiIndex 高級索引操作
從語法上將 MultiIndex 與 .loc 集成在高級索引中是有些挑戰性。通常, MultiIndex 的鍵採用元組的形式。例如
注意 : 雖然也可以使用 df.loc['bar', 'two'] ,但這種簡寫的符號通常會導致歧義
如果你還想用 .loc 索引某一列,你必須像這樣使用一個元組
想要獲取第一個級別的某一標簽的所有元素,並不需要傳遞元組,例如
而不是使用 df.loc[('bar',),] (等價於 df.loc['bar',] )
當然,也可以進行切片
通過提供一個元組切片,選擇范圍內的值
傳遞一個標簽或元組列表的工作原理類似於 reindex
需要注意的是,在 pandas 中,當涉及到索引時,元組和列表的處理方式並不相同。
元組被解釋為一個多級鍵,而列表則用來指定多個鍵。或者換句話說,元組是橫向的,列表是縱向的
您可以通過提供多個索引器來對 MultiIndex 進行切片
可以使用 slice(None) 選擇該級別的所有內容,沒有指定索引的級別默認為 slice(None)
通常,切片的兩段都會包括在內,因為這是標簽索引
在使用 .loc 的時候,最好同時指定索引(行)和標簽(列),因為在某些情況下,傳遞的索引可能會被解析為兩個軸而不是 MultiIndex
你應該使用
而不是
例如
使用切片,列表和標簽的基本 MultiIndex 切片操作
你可以使用 pandas.IndexSlice 來讓 : 語法顯得更自然一些,而不是使用 slice(None)
可以使用這種方法在多個軸同時進行相當復雜的選擇
您可以使用布爾索引器來進行與值相關的選擇
您還可以為 .loc 指定 axis 參數,以在某一個軸上傳遞切片
此外,您可以使用以下方法設置這些值
也可以在等號右邊使用可對齊對象
DataFrame 的 xs() 方法還接受一個 level 參數,以便更容易在 MultiIndex 的特定級別上選擇數據
使用切片
您還可以為 xs 提供 axis 參數來選擇列
使用切片
xs 還允許使用多個鍵進行選擇
使用切片
您可以將 drop_level=False 傳遞給 xs ,以保留所選擇的級別
使用 drop_level=True (默認值)與上面的結果比較
在 pandas 對象的 reindex() 和 align() 方法中使用 level 參數,可以在一個級別上廣播值
swaplevel() 方法可以切換兩個級別的順序
reorder_levels() 方法是 swaplevel 方法的推廣,允許你在一個步驟中排列分層索引級別
rename() 方法可用於重命名 MultiIndex 的標簽,通常用於重命名 DataFrame 的列
rename 的 columns 參數允許指定需要重命名的列的字典
這個方法也可以用來重命名 DataFrame 主索引的特定標簽
rename_axis() 方法用於重命名 Index 或 MultiIndex 的名稱。
特別地,可以指定 MultiIndex 的級別名稱,可以使用 reset_index() 將 MultiIndex 移動到列
注意 : DataFrame 的列是一個索引,因此使用 rename_axis 和 columns 參數可以改變該索引的名稱
rename 和 rename_axis 都支持指定字典、 Series 或映射函數來將標簽/名稱映射到新值
當直接使用 Index 對象而不是通過 DataFrame 工作時,可以使用 Index.set_names() 來更改名稱
您不能通過 level 設置 MultiIndex 的名稱
使用 Index.set_names() 替代
『玖』 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—padas(DataFrame)的常用操作
我們先說一下DataFrame是什麼:
1、DataFrame是一種數據框結構,相當於是一個矩陣形式,單元格可以存放數值、字元串等,這和excel表很像;
2、DataFrame是有 行(index)和 列(columns)可以設置的;
有了示例,我們就能明白創建時需要傳入數據,指定index(行索引名)和columns(列名);
在我們需要將單個元素的字典直接轉為DataFrame時,程序會報錯,需要適當做些轉換,指定行索引或者列索引才行;
在增加列的時候我們用到了一個索引loc,後面我們再詳細對loc進行說明,此處先知道可以這樣使用。
文本字元串數據處理之前,一定要先轉為字元(.str)再進行處理
loc 和 iloc如果容易記混,你就取巧記憶,index是索引
所以iloc則是依據位置索引進行取數,沒有i的則是按照名稱進行提取數據
原諒我很懶,比較喜歡這樣框架式的筆記,所以文字就會比較少(#^.^#)!!!