顯示索引和隱式索引
import pandas as pd
df = pd.DataFrame({'姓名':['張三','李四','王五'],'成績':[85,59,76]})
傳入冒號‘:',表示所有行或者列
顯示索引:.loc,第一個參數為 index切片,第二個為 columns列名
df.loc[2] #index為2的記錄,這里是王五的成績。
df.loc[:,'姓名'] #第一個參數為冒號,表示所有行,這里是篩選姓名這列記錄。
隱式索引:.iloc(integer_location), 只能傳入整數。
df.iloc[:2,:] #張三和李四的成績,跟列表切片一樣,冒號左閉右開。
df.iloc[:,'成績'] #輸入中文,這里就報錯了,只能使用整數。
也可以使用at定位到某個元素
語法規則:df.at[index,columns]
df.at[1,'成績'] #使用索引標簽,李四的成績
df.iat[1,1] #類似于iloc使用隱式索引訪問某個元素
補充:pandas快速定位某一列中存在某值的所有行,loc, at, ==對比
如下所示:
from datetime import datetime
from time import time
直接方括號定位相等的列
start = time()
for disk in goodDiskName2016[:100]:
____ST4000DM000_2016_good_feature27[ST4000DM000_2016_good_feature27.serial_number==disk][features27[0]]
time()-start
消耗時間
直接loc定位相等的
start = time()
for disk in goodDiskName2016[:100]: ____ST4000DM000_2016_good_feature27.loc[ST4000DM000_2016_good_feature27.serial_number==disk][features27[0]]
time()-start
消耗時間:
先將這一列設置為index,然后通過loc查找
b = ST4000DM000_2016_good_feature27.set_index('serial_number')
start = time()
for disk in goodDiskName2016[:100]:
b.loc[disk][features27[0]]
time()-start
消耗時間:
設置為index后用at定位
start = time()
for disk in goodDiskName2016[:100]:
b.at[disk,features27[0]]
time()-start
消耗時間:
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- Python基礎之pandas數據合并
- python-pandas創建Series數據類型的操作
- Python數據分析之pandas函數詳解
- python基于Pandas讀寫MySQL數據庫
- pandas讀取excel時獲取讀取進度的實現
- 淺談Pandas dataframe數據處理方法的速度比較
- 解決使用pandas聚類時的小坑
- pandas 使用merge實現百倍加速的操作
- 詳細介紹在pandas中創建category類型數據的幾種方法
- python中pandas.read_csv()函數的深入講解
- pandas 顛倒列順序的兩種解決方案
- pandas調整列的順序以及添加列的實現
- pandas快速處理Excel,替換Nan,轉字典的操作
- Python基礎之教你怎么在M1系統上使用pandas