Pandas Index.get_loc(~)
方法返回源 Index
中給定值的位置。
參數
1. key
| label
您想知道其位置的值。
2. method
| None
或 string
| optional
當源Index
中不存在key
時,如何處理這種情況:
方法 |
說明 |
---|---|
|
拋出一個錯誤。 |
|
返回前一個索引值的整數索引。 |
|
返回下一個索引值的整數索引。 |
|
返回最近索引值的整數索引。 作為tie-breaker,較大的索引值將優先。 |
默認情況下,method=None
。
警告
您的 Index
必須是單調的,否則指定 method
將引發錯誤。
3. tolerance
| int
或 float
| optional
key
和所選索引值之間允許的最大差異:
abs(index[loc] - key) <= tolerance
僅當方法不是 None
時,這才相關。默認情況下,不設置容差。
返回值
返回類型取決於以下情況:
案子 |
返回類型 |
---|---|
如果找到單個匹配項。 |
|
如果找到多個匹配項並且 源 |
|
Otherwise |
布爾值的 Numpy 數組 |
例子
單場比賽
要獲取唯一值的整數索引:
idx = pd.Index(["a","b","c"])
idx.get_loc("c")
2
這裏,值"c"
的整數索引是2
。
多場比賽
當索引單調時
要獲取單調 Index
中不唯一的值的整數索引:
idx = pd.Index(["a","b","c","c"])
slice = idx.get_loc("c")
slice
slice(2, 4, None)
由於idx
是單調遞增的,因此這裏的返回類型是slice
對象。請注意,您可以像這樣訪問 slice
的屬性:
print("start", slice.start)
print("stop", slice.stop)
print("step", slice.step)
start 2
stop 4
step None
當索引不單調時
要獲取非單調 Index
中不唯一的值的位置:
idx = pd.Index(["a","b","c","b"])
idx.get_loc("b")
array([False, True, False, True])
此處,返回類型是布爾值的 Numpy 數組,其中 True
指示值的存在。
指定方法
默認情況下,當 Index
中不存在提供的值時,會拋出 KeyError
:
idx = pd.Index([3,5,8])
idx.get_loc(6)
KeyError: 6
在這種情況下,當 Index
中不存在該值時,我們可以指定 method
來獲取相鄰值的整數索引。請注意,我們的Index
必須是單調的,否則指定method
將引發錯誤。
填充
當 method="ffill"
時,將返回前一個值的整數索引:
idx = pd.Index([3,5,8])
idx.get_loc(7, method="ffill")
1
這裏,7
的先前值是5
,因此返回5
的整數索引。
填充
當 method="bfill"
時,將返回下一個值的整數索引:
idx = pd.Index([3,5,8])
idx.get_loc(6, method="bfill")
2
這裏,6
的下一個值是8
,因此返回8
的整數索引。
最近的
當 method="nearest"
時,將返回最接近值的整數索引:
idx = pd.Index([3,5,8])
idx.get_loc(6, method="nearest")
1
這裏,最接近 6
的值是 5
(與 8
相反),因此返回 5
的整數索引。
指定公差
如果未找到完全匹配,則設置 tolerance
會在提供的值和選定的索引值之間施加最大可接受的差異:
idx = pd.Index([3,5,8])
idx.get_loc(6, method="nearest", tolerance=0.5)
KeyError: 6
在這裏,我們收到錯誤,因為最接近的索引值是 5
,並且 5
和提供的值 6
之間的差異大於 0.5
的指定容差。
相關用法
- Python Pandas Index difference方法用法及代碼示例
- Python Django Index.expressions用法及代碼示例
- Python Django Index.include用法及代碼示例
- Python Int轉Bytes用法及代碼示例
- Python Django InlineModelAdmin.get_extra用法及代碼示例
- Python Django InlineModelAdmin.raw_id_fields用法及代碼示例
- Python Pandas IntervalIndex構造函數用法及代碼示例
- Python InteractiveConsole runcode()用法及代碼示例
- Python InteractiveInterpreter runsource()用法及代碼示例
- Python InteractiveInterpreter runcode()用法及代碼示例
- Python IncrementalEncoder encode()用法及代碼示例
- Python Django InlineModelAdmin.get_max_num用法及代碼示例
- Python PIL Image.draft()用法及代碼示例
- Python PIL Image.thumbnail()用法及代碼示例
- Python PIL Image.new()用法及代碼示例
- Python PIL ImageOps.fit()用法及代碼示例
- Python Wand Image()用法及代碼示例
- Python PIL ImageDraw.Draw.rectangle()用法及代碼示例
- Python PIL ImageEnhance.Color() and ImageEnhance.Contrast()用法及代碼示例
- Python Itertools.zip_longest()用法及代碼示例
- Python PIL Image.getdata()用法及代碼示例
- Python Itertools.compress()用法及代碼示例
- Python PIL ImageFont.truetype()用法及代碼示例
- Python Itertools.count()用法及代碼示例
- Python PIL ImagePath.Path.tolist()用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas Index | get_loc method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。