日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

iloc loc 区别

發(fā)布時(shí)間:2023/11/28 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iloc loc 区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

loc和iloc的區(qū)別,這兩個(gè)有點(diǎn)容易混淆,因此需要特殊方式來(lái)加強(qiáng)記憶

總結(jié):

  1. loc使用范圍比iloc更廣更實(shí)用,loc可以使用切片、名稱(index,columns)、也可以切片和名稱混合使用;但是loc不能使用不存在的索引來(lái)充當(dāng)切片取值,像-1

  2. iloc只能用整數(shù)來(lái)取數(shù)

  3. 不借助loc和iloc

data=DataFrame(np.arange(16).reshape(4,4),index=list(“ABCD”),columns=list(“wxyz”))
print(data)

#可以直接取列索引,行索引卻不行
aa=data[“w”]
bb=data[1:2] #行數(shù)值切片
cc=data[1:2,1:2] #不能同時(shí)切片,也就是中間不能有逗號(hào)

推薦使用loc

iloc: i可以看著int,因此iloc就是用數(shù)字(int)來(lái)取數(shù)據(jù)的.
iloc使用情況: 使用整數(shù)通過(guò)切片等方式取數(shù)
比如:

# 切片
# 下面兩種方法有同樣的效果; 表示取出df中15(不包括5)361 df.iloc[1:5,3:6] 
2 df.iloc[[1,2,3,4],[3,4,5]] 
# 另外 df.iloc[0]、df.iloc[1]、df.iloc[-1] 分別表示第一行、第二行、最后一行
# 同理df.iloc[:,0]、df.iloc[:,1]、df.iloc[:,-1] 分別表示第一列、第二列、最后一列

loc的使用范圍要遠(yuǎn)高于iloc, loc也能夠做到iloc的切片取數(shù), 除了df.loc[-1]
loc使用情況:
使用切片、索引、列名稱查找
按條件(bool)查找

比如:

pandas中iloc、loc的用法和區(qū)別
時(shí)間:2020-03-17
本文章向大家介紹pandas中iloc、loc的用法和區(qū)別,主要包括pandas中iloc、loc的用法和區(qū)別使用實(shí)例、應(yīng)用技巧、基本知識(shí)點(diǎn)總結(jié)和需要注意事項(xiàng),具有一定的參考價(jià)值,需要的朋友可以參考一下。loc和iloc的區(qū)別,這兩個(gè)有點(diǎn)容易混淆,因此需要特殊方式來(lái)加強(qiáng)記憶總結(jié):1. loc使用范圍比iloc更廣更實(shí)用,loc可以使用切片、名稱(index,columns)、也可以切片和名稱混合使用;但是loc不能使用不存在的索引來(lái)充當(dāng)切片取值,-12. iloc只能用整數(shù)來(lái)取數(shù)推薦使用lociloc: i可以看著int,因此iloc就是用數(shù)字(int)來(lái)取數(shù)據(jù)的.
iloc使用情況: 使用整數(shù)通過(guò)切片等方式取數(shù)
比如:# 切片
# 下面兩種方法有同樣的效果; 表示取出df中15(不包括5)361 df.iloc[1:5,3:6] 
2 df.iloc[[1,2,3,4],[3,4,5]] 
# 另外 df.iloc[0]、df.iloc[1]、df.iloc[-1] 分別表示第一行、第二行、最后一行
# 同理df.iloc[:,0]、df.iloc[:,1]、df.iloc[:,-1] 分別表示第一列、第二列、最后一列l(wèi)oc的使用范圍要遠(yuǎn)高于iloc, loc也能夠做到iloc的切片取數(shù), 除了df.loc[-1]
loc使用情況:
使用切片、索引、列名稱查找
按條件(bool)查找比如:1 # 切片
2 hy_data.loc[2:4,]
3 hy_data.loc[[0,1,2,3],:]
4 # 切片和名稱混合
5 hy_data.loc[2:4,'用戶編號(hào)']
6 # 按條件取數(shù)
7 # 表示取出df中“行業(yè)分類”列值的長(zhǎng)度等于6的所有行
8 hy_data.loc[hy_data['行業(yè)分類'].str.len() == 6, :]

loc——通過(guò)行標(biāo)簽索引行數(shù)據(jù)
iloc——通過(guò)行號(hào)索引行數(shù)據(jù)
ix——通過(guò)行標(biāo)簽或者行號(hào)索引行數(shù)據(jù)(基于loc和iloc 的混合)
標(biāo)簽切片,如’a’:‘c’,與序列切片如0:2不同,后者不包含index=2的元素,前者包含結(jié)束標(biāo)簽’c’所在的行。
布爾類型數(shù)組作為標(biāo)簽,例如[True, False]等價(jià)于[‘a(chǎn)’,‘c’]

1.loc

import numpy as np
import pandas as pd
from pandas import *
from numpy import *data=DataFrame(np.arange(16).reshape(4,4),index=list("ABCD"),columns=list("wxyz"))
print(data)
#    w   x   y   z
#A   0   1   2   3
#B   4   5   6   7
#C   8   9  10  11
#D  12  13  14  15#loc
#行的選取
print(data.loc["A"])
print(type(data.loc["A"]))
#w    0
#x    1
#y    2
#z    3
#Name: A, dtype: int32
#<class 'pandas.core.series.Series'>print(data.loc[["A"]])
print(type(data.loc[["A"]]))
#   w  x  y  z
#A  0  1  2  3
#<class 'pandas.core.frame.DataFrame'>
#綜上,[]返回Series,[[]]返回DataFrameprint(data.loc["A","w"])
print(type(data.loc["A","w"]))
#0
#<class 'numpy.int32'>print(data.loc[:,"w"])
print(type(data.loc[:,"w"]))
#A     0
#B     4
#C     8
#D    12
#Name: w, dtype: int32
#<class 'pandas.core.series.Series'>print(data.loc["A":"C"])
print(type(data.loc["A":"C"]))
#   w  x   y   z
#A  0  1   2   3
#B  4  5   6   7
#C  8  9  10  11
#<class 'pandas.core.frame.DataFrame'>print(data.loc["A":"C","w":"y"])
print(type(data.loc["A":"C","w":"y"]))
#   w  x   y
#A  0  1   2
#B  4  5   6
#C  8  9  10
#<class 'pandas.core.frame.DataFrame'>print(data.loc[["A","C"],["w","y"]])
print(type(data.loc[["A","C"],["w","y"]]))
#   w   y
#A  0   2
#C  8  10
#<class 'pandas.core.frame.DataFrame'>print(data.loc[:,["w","y"]])
print(type(data.loc[:,["w","y"]]))
#    w   y
#A   0   2
#B   4   6
#C   8  10
#D  12  14
#<class 'pandas.core.frame.DataFrame'>#列的選取
print(data["w"])#等同于print(data.loc[:,"w"])
#A     0
#B     4
#C     8
#D    12
#Name: w, dtype: int32
print(data.loc[:,"w"])
#A     0
#B     4
#C     8
#D    12
#Name: w, dtype: int32
print(data["w"].equals(data.loc[:,"w"]))#True#根據(jù)特殊條件選取行列
print(data["w"]>5)
#A    False
#B    False
#C     True
#D     True
#Name: w, dtype: boolprint(data.loc[data["w"]>5])
#    w   x   y   z
#C   8   9  10  11
#D  12  13  14  15
print(data.loc[data["w"]>5,"w"])
print(type(data.loc[data["w"]>5,"w"]))
#C     8
#D    12
#Name: w, dtype: int32
#<class 'pandas.core.series.Series'>
print(data.loc[data["w"]>5,["w"]])
print(type(data.loc[data["w"]>5,["w"]]))
#    w
#C   8
#D  12
#<class 'pandas.core.frame.DataFrame'>
print(data["w"]==0)
print(data.loc[lambda data:data["w"]==0])
print(type(data.loc[lambda data:data["w"]==0]))
#A     True
#B    False
#C    False
#D    False
#Name: w, dtype: bool
#   w  x  y  z
#A  0  1  2  3
#<class 'pandas.core.frame.DataFrame'>#loc賦值
print(data)
#    w   x   y   z
#A   0   1   2   3
#B   4   5   6   7
#C   8   9  10  11
#D  12  13  14  15
data.loc[["A","C"],["w","x"]]=999
print(data)
#     w    x   y   z
#A  999  999   2   3
#B    4    5   6   7
#C  999  999  10  11
#D   12   13  14  15

2.iloc

data=DataFrame(np.arange(16).reshape(4,4),index=list("ABCD"),columns=list("wxyz"))
print(data)
#    w   x   y   z
#A   0   1   2   3
#B   4   5   6   7
#C   8   9  10  11
#D  12  13  14  15print(data.iloc[0])
print(type(data.iloc[0]))
#w    0
#x    1
#y    2
#z    3
#Name: A, dtype: int32
#<class 'pandas.core.series.Series'>
#print(data.iloc["A"])報(bào)錯(cuò)#print(data.loc[0])報(bào)錯(cuò)
print(data.loc[["A"]])
print(type(data.loc["A"]))
#   w  x  y  z
#A  0  1  2  3
#<class 'pandas.core.series.Series'>

3.iloc和loc差別
iloc是按照行數(shù)取值,而loc按著index名取值

data=DataFrame(np.arange(16).reshape(4,4),index=list("1234"),columns=list("wxyz"))
print(data)
#    w   x   y   z
#1   0   1   2   3
#2   4   5   6   7
#3   8   9  10  11
#4  12  13  14  15
print(data.iloc[0])
#w    0
#x    1
#y    2
#z    3
#Name: 1, dtype: int32
#print(data.loc[0])報(bào)錯(cuò)

總結(jié)

以上是生活随笔為你收集整理的iloc loc 区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。