用法:
property DataFrame.loc
通過標簽或布爾數組訪問一組行和列。
.loc[]
主要基於標簽,但也可以與布爾數組一起使用。允許的輸入是:
單個標簽,例如
5
或者'a'
, (注意5
被解釋為標簽的 index ,和絕不作為沿索引的整數位置)。標簽列表或數組,例如
['a', 'b', 'c']
。帶有標簽的切片對象,例如
'a':'f'
。警告
請注意,與通常的 python 切片相反,兩個都包括起點和終點
與被切片的軸長度相同的布爾數組,例如
[True, False, True]
。一個可對齊的布爾係列。鍵的索引將在屏蔽之前對齊。
一個可對齊的索引。返回選擇的索引將作為輸入。
callable
函數,帶有一個參數(調用 Series 或 DataFrame)並返回有效輸出以進行索引(上述之一)
在按標簽選擇中查看更多信息。
- KeyError
如果沒有找到任何項目。
- 索引錯誤
如果傳遞了索引鍵並且其索引與幀索引不對齊。
拋出:
例子:
獲取值
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=['cobra', 'viper', 'sidewinder'], ... columns=['max_speed', 'shield']) >>> df max_speed shield cobra 1 2 viper 4 5 sidewinder 7 8
單標簽。請注意,這會將行作為係列返回。
>>> df.loc['viper'] max_speed 4 shield 5 Name: viper, dtype: int64
標簽列表。注意使用
[[]]
返回一個DataFrame。>>> df.loc[['viper', 'sidewinder']] max_speed shield viper 4 5 sidewinder 7 8
行和列的單個標簽
>>> df.loc['cobra', 'shield'] 2
帶有行標簽和列標簽的切片。如上所述,請注意切片的開始和停止都包括在內。
>>> df.loc['cobra':'viper', 'max_speed'] cobra 1 viper 4 Name: max_speed, dtype: int64
與行軸長度相同的布爾列表
>>> df.loc[[False, False, True]] max_speed shield sidewinder 7 8
可對齊的布爾係列:
>>> df.loc[pd.Series([False, True, False], ... index=['viper', 'sidewinder', 'cobra'])] max_speed shield sidewinder 7 8
索引(與
df.reindex
相同的行為)>>> df.loc[pd.Index(["cobra", "viper"], name="foo")] max_speed shield foo cobra 1 2 viper 4 5
返回布爾係列的條件
>>> df.loc[df['shield'] > 6] max_speed shield sidewinder 7 8
返回具有指定列標簽的布爾係列的條件
>>> df.loc[df['shield'] > 6, ['max_speed']] max_speed sidewinder 7
返回布爾係列的可調用
>>> df.loc[lambda df: df['shield'] == 8] max_speed shield sidewinder 7 8
設定值
為與標簽列表匹配的所有項目設置值
>>> df.loc[['viper', 'sidewinder'], ['shield']] = 50 >>> df max_speed shield cobra 1 2 viper 4 50 sidewinder 7 50
為整行設置值
>>> df.loc['cobra'] = 10 >>> df max_speed shield cobra 10 10 viper 4 50 sidewinder 7 50
為整列設置值
>>> df.loc[:, 'max_speed'] = 30 >>> df max_speed shield cobra 30 10 viper 30 50 sidewinder 30 50
為匹配可調用條件的行設置值
>>> df.loc[df['shield'] > 35] = 0 >>> df max_speed shield cobra 30 10 viper 0 0 sidewinder 0 0
使用具有整數標簽的索引獲取 DataFrame 上的值
另一個使用整數作為索引的例子
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=[7, 8, 9], columns=['max_speed', 'shield']) >>> df max_speed shield 7 1 2 8 4 5 9 7 8
用整數標簽對行進行切片。如上所述,請注意切片的開始和停止都包括在內。
>>> df.loc[7:9] max_speed shield 7 1 2 8 4 5 9 7 8
使用 MultiIndex 獲取值
使用帶有 MultiIndex 的 DataFrame 的一些示例
>>> tuples = [ ... ('cobra', 'mark i'), ('cobra', 'mark ii'), ... ('sidewinder', 'mark i'), ('sidewinder', 'mark ii'), ... ('viper', 'mark ii'), ('viper', 'mark iii') ... ] >>> index = pd.MultiIndex.from_tuples(tuples) >>> values = [[12, 2], [0, 4], [10, 20], ... [1, 4], [7, 1], [16, 36]] >>> df = pd.DataFrame(values, columns=['max_speed', 'shield'], index=index) >>> df max_speed shield cobra mark i 12 2 mark ii 0 4 sidewinder mark i 10 20 mark ii 1 4 viper mark ii 7 1 mark iii 16 36
單標簽。請注意,這將返回具有單個索引的 DataFrame。
>>> df.loc['cobra'] max_speed shield mark i 12 2 mark ii 0 4
單索引元組。請注意,這將返回一個係列。
>>> df.loc[('cobra', 'mark ii')] max_speed 0 shield 4 Name: (cobra, mark ii), dtype: int64
行和列的單個標簽。類似於傳入一個元組,這將返回一個係列。
>>> df.loc['cobra', 'mark i'] max_speed 12 shield 2 Name: (cobra, mark i), dtype: int64
單元組。注意使用
[[]]
返回一個DataFrame。>>> df.loc[[('cobra', 'mark ii')]] max_speed shield cobra mark ii 0 4
索引的單個元組,列的單個標簽
>>> df.loc[('cobra', 'mark i'), 'shield'] 2
從索引元組切片到單個標簽
>>> df.loc[('cobra', 'mark i'):'viper'] max_speed shield cobra mark i 12 2 mark ii 0 4 sidewinder mark i 10 20 mark ii 1 4 viper mark ii 7 1 mark iii 16 36
從索引元組切片到索引元組
>>> df.loc[('cobra', 'mark i'):('viper', 'mark ii')] max_speed shield cobra mark i 12 2 mark ii 0 4 sidewinder mark i 10 20 mark ii 1 4 viper mark ii 7 1
相關用法
- Python pandas.DataFrame.last用法及代碼示例
- Python pandas.DataFrame.lt用法及代碼示例
- Python pandas.DataFrame.le用法及代碼示例
- Python pandas.DataFrame.ewm用法及代碼示例
- Python pandas.DataFrame.dot用法及代碼示例
- Python pandas.DataFrame.apply用法及代碼示例
- Python pandas.DataFrame.combine_first用法及代碼示例
- Python pandas.DataFrame.cumsum用法及代碼示例
- Python pandas.DataFrame.rename用法及代碼示例
- Python pandas.DataFrame.to_numpy用法及代碼示例
- Python pandas.DataFrame.dtypes用法及代碼示例
- Python pandas.DataFrame.cummin用法及代碼示例
- Python pandas.DataFrame.truncate用法及代碼示例
- Python pandas.DataFrame.sparse.from_spmatrix用法及代碼示例
- Python pandas.DataFrame.add_prefix用法及代碼示例
- Python pandas.DataFrame.to_json用法及代碼示例
- Python pandas.DataFrame.convert_dtypes用法及代碼示例
- Python pandas.DataFrame.assign用法及代碼示例
- Python pandas.DataFrame.radd用法及代碼示例
- Python pandas.DataFrame.add用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.loc。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。