小編典典
python中loc的用法,pd.DataFrame.loc可以使用一兩個索引器。在其余文章中,我將第一個索引器表示為i,將第二個索引器表示為j。
如果僅提供一個索引器,則該索引器將應用于數據幀的索引,并且假定缺少的索引器代表所有列。因此,以下兩個
示例是等效的。
df.loc[i]
df.loc[i, :]
其中:用來表示所有列。
如果同時存在兩個索引器,則i引用索引值和j引用列值。
現在我們可以專注于什么類型的值i,并j可以承擔。讓我們以以下數據框df為例:
df = pd.DataFrame([[1, 2], [3, 4]], index=['A', 'B'], columns=['X', 'Y'])
loc 已經寫成這樣i并且j可以是
scalars 應該是各個索引對象中的值
df.loc['A', 'Y']
arrays 其元素也是相應索引對象的成員(請注意,我傳遞給的數組的順序loc受尊重
df.loc[['B', 'A'], 'X']
B 3
A 1
Name: X, dtype: int64
* 傳遞數組時,請注意返回對象的維數。`i`是上面的數組,`loc`返回一個對象,其中返回帶有這些值的索引。在這種情況下,因為j是標量,所以`loc`返回了一個`pd.Series`對象。如果我們為i和傳遞了一個數組,我們可以操縱它以返回一個數據幀j,并且該數組可能只是一個單值數組。
```
df.loc[[‘B’, ‘A’], [‘X’]]
X
B 3
A 1
3. **boolean arrays** 為True或False且長度與相應索引的長度匹配的布爾數組。在這種情況下,loc只需獲取布爾數組所在的行(或列) `True`.
df.loc[[True, False], ['X']]
X
A 1
```
除了可以傳遞給哪些索引器之外loc,它還使您能夠進行分配。現在,我們可以分解您提供的代碼行。
iris_data.loc[iris_data['class'] == 'versicolor', 'class'] = 'Iris-versicolor'
iris_data['class'] == 'versicolor' 返回一個布爾數組。
class 是表示column對象中的值的標量.
iris_data.loc[iris_data['class'] == 'versicolor', 'class'] returns a pd.Series object consisting of the 'class' column for all rows where 'class' is 'versicolor'
與賦值運算符一起使用時:iris_data.loc[iris_data['class'] == 'versicolor', 'class'] = 'Iris-versicolor'
我們分配'Iris-versicolor'在列中的所有元素'class',其中
'class'為'versicolor'
2020-12-20
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态