python中loc什么意思_python pandas 中 loc iloc 用法區別

 2023-12-12 阅读 26 评论 0

摘要:轉自:https://blog.csdn.net/qq_21840201/article/details/80725433### 隨機生DataFrame 類型數據import pandas as pdimport numpy as npframe = pd.DataFrame(np.random.rand(4,4),index=list('abcd'),columns=list('ABCD'))frameA B C

轉自:https://blog.csdn.net/qq_21840201/article/details/80725433

### 隨機生DataFrame 類型數據

import pandas as pd

import numpy as np

frame = pd.DataFrame(np.random.rand(4,4),index=list('abcd'),columns=list('ABCD'))

frame

A B C D

a 0.560094 0.352686 0.954100 0.926277

b 0.563728 0.335517 0.232902 0.973932

c 0.482155 0.976618 0.565462 0.445108

d 0.477146 0.933353 0.291764 0.986668

1、loc ? ? 基于行標簽和列標簽(x_label、y_label)進行索引

### .loc先行后列,中間用逗號(,)分割,例如取 a 和 A 對應的數據

frame.loc['a','A']

0.56009394013943303

### 取前兩行對應數據

frame.loc['a':'b',:]

A B C D

a 0.560094 0.352686 0.954100 0.926277

b 0.563728 0.335517 0.232902 0.973932

### 取前兩列對應數據

frame.loc[:,'A':'B']

A B

a 0.560094 0.352686

b 0.563728 0.335517

c 0.482155 0.976618

d 0.477146 0.933353

### 取前兩行和前兩列對應數據

frame.loc['a':'b','A':'B']

A B

a 0.560094 0.352686

b 0.563728 0.335517

### 上面的例子取的都是連續的行和列,若取第一行和第四行、第一列和第四列對應的數據,則

frame.loc[['a','d'],['A','D']]

上面的例子取的都是連續的行和列,若取第一行和第四行、第一列和第四列對應的數據,則

frame.loc[['a','d'],['A','D']]

A D

a 0.560094 0.926277

d 0.477146 0.986668

2、 iloc ? 基于行索引和列索引(index,columns) 都是從 0 開始

如果數據的行標簽和列標簽名字太長或不容易記,則用 iloc 很方便,只需記標簽對應的索引即可

### .loc先行后列,中間用逗號(,)分割,例如取 a 和 A 對應的數據

frame.iloc[0,0]

0.56009394013943303

### 取前兩行對應數據

frame.iloc[0:2,:]

A B C D

a 0.560094 0.352686 0.954100 0.926277

b 0.563728 0.335517 0.232902 0.973932

### 取前兩列對應數據

frame.iloc[:,0:2]

A B

a 0.560094 0.352686

b 0.563728 0.335517

c 0.482155 0.976618

d 0.477146 0.933353

### 取前兩行和前兩列對應數據

frame.iloc[0:2,0:2]

A B

a 0.560094 0.352686

b 0.563728 0.335517

### 上面的例子取的都是連續的行和列,若取第一行和第四行、第一列和第四列對應的數據,則

frame.iloc[[0,3],[0,3]]

上面的例子取的都是連續的行和列,若取第一行和第四行、第一列和第四列對應的數據,則

frame.iloc[[0,3],[0,3]]

A D

a 0.560094 0.926277

d 0.477146 0.986668

3、 ix ?基于標簽或者索引(loc和iloc 的混合)

### 取前兩行和前兩列對應數據

frame.iloc[0:2,0:2]

A B

a 0.560094 0.352686

b 0.563728 0.335517

### 取前兩行和前兩列對應數據

frame.ix['a':'b','A':'B']

A B

a 0.560094 0.352686

b 0.563728 0.335517

官方文檔新的python版本已經棄用 ix,建議使用 loc 和 iloc

.ix is deprecated. Please use

.loc for label based indexing or

---------------------

作者:求知者_123

來源:CSDN

原文:https://blog.csdn.net/qq_21840201/article/details/80725433

版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/196389.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息