Python_Pandas_Select_Data_loc[ ]

.loc[]

.loc主要是基于標簽的伤柄,但也可以與布爾數組一起使用象泵。

可以輸入如下幾種類型:

  • 單個標簽,例如5或'a'瑰枫;
  • 列表或標簽數組踱葛。['a', 'b', 'c']
  • 帶標簽的切片對象'a':'f';
  • 布爾數組
  • 函數光坝。
import pandas as pd
import numpy as np
import seaborn as sns
?
iris = pd.read_csv('iris.csv',header=0).sample(10)
iris

out:
    sepal_length    sepal_width petal_length    petal_width species
11  4.8 3.4 1.6 0.2 setosa
106 4.9 2.5 4.5 1.7 virginica
14  5.8 4.0 1.2 0.2 setosa
61  5.9 3.0 4.2 1.5 versicolor
138 6.0 3.0 4.8 1.8 virginica
132 6.4 2.8 5.6 2.2 virginica
97  6.2 2.9 4.3 1.3 versicolor
119 6.0 2.2 5.0 1.5 virginica
31  5.4 3.4 1.5 0.4 setosa
19  5.1 3.8 1.5 0.3 setosa
iris.index = list('abcdefghij')
iris

out:
    sepal_length    sepal_width petal_length    petal_width species
a   5.6 2.5 3.9 1.1 versicolor
b   6.0 3.0 4.8 1.8 virginica
c   7.2 3.6 6.1 2.5 virginica
d   5.4 3.7 1.5 0.2 setosa
e   6.6 3.0 4.4 1.4 versicolor
f   6.4 2.8 5.6 2.1 virginica
g   4.8 3.4 1.9 0.2 setosa
h   5.7 2.9 4.2 1.3 versicolor
i   6.1 3.0 4.9 1.8 virginica
j   6.5 3.2 5.1 2.0 virginica

Series

species = iris.species.copy()
species.loc['b']

out:
'virginica'
species.loc['c':'e']

out:
c     virginica
d        setosa
e    versicolor
Name: species, dtype: object
species.loc['h':]
h    versicolor
i     virginica
j     virginica
Name: species, dtype: object

DataFrame

直接通過標簽訪問


iris.loc[['a','c','d'], :]

out:
sepal_length    sepal_width petal_length    petal_width species
a   5.6 2.5 3.9 1.1 versicolor
c   7.2 3.6 6.1 2.5 virginica
d   5.4 3.7 1.5 0.2 setosa

通過標簽切片訪問

iris.loc['b':'f', 'sepal_length':'petal_length']

out:
sepal_length    sepal_width petal_length
b   6.0 3.0 4.8
c   7.2 3.6 6.1
d   5.4 3.7 1.5
e   6.6 3.0 4.4
f   6.4 2.8 5.6

使用單個標簽

iris.loc['d']

out:
sepal_length       5.4
sepal_width        3.7
petal_length       1.5
petal_width        0.2
species         setosa
Name: d, dtype: object

使用布爾數組

iris.loc[iris.sepal_length > iris.sepal_length.mean()]

out:
sepal_length    sepal_width petal_length    petal_width species
c   7.2 3.6 6.1 2.5 virginica
e   6.6 3.0 4.4 1.4 versicolor
f   6.4 2.8 5.6 2.1 virginica
i   6.1 3.0 4.9 1.8 virginica
j   6.5 3.2 5.1 2.0 virginica
iris.index = np.random.randint(0,10,10)
iris

out:
sepal_length    sepal_width petal_length    petal_width species
8   5.6 2.5 3.9 1.1 versicolor
5   6.0 3.0 4.8 1.8 virginica
9   7.2 3.6 6.1 2.5 virginica
4   5.4 3.7 1.5 0.2 setosa
2   6.6 3.0 4.4 1.4 versicolor
0   6.4 2.8 5.6 2.1 virginica
3   4.8 3.4 1.9 0.2 setosa
7   5.7 2.9 4.2 1.3 versicolor
3   6.1 3.0 4.9 1.8 virginica
5   6.5 3.2 5.1 2.0 virginica

使用.loc切片時尸诽,如果索引中存在開始和停止標簽,則返回位于兩者之間的元素(包括它們):

iris.loc[9:2]
sepal_length    sepal_width petal_length    petal_width species
9   7.2 3.6 6.1 2.5 virginica
4   5.4 3.7 1.5 0.2 setosa
2   6.6 3.0 4.4 1.4 versicolor

如果兩個中至少有一個不存在盯另,但索引已排序性含,并且可以與開始和停止標簽進行比較,那么通過選擇在兩者之間排名的標簽鸳惯,切片仍將按預期工作:

iris.sort_index()
sepal_length    sepal_width petal_length    petal_width species
0   6.4 2.8 5.6 2.1 virginica
2   6.6 3.0 4.4 1.4 versicolor
3   4.8 3.4 1.9 0.2 setosa
3   6.1 3.0 4.9 1.8 virginica
4   5.4 3.7 1.5 0.2 setosa
5   6.0 3.0 4.8 1.8 virginica
5   6.5 3.2 5.1 2.0 virginica
7   5.7 2.9 4.2 1.3 versicolor
8   5.6 2.5 3.9 1.1 versicolor
9   7.2 3.6 6.1 2.5 virginica
iris.sort_index().loc[3:7]

out:
sepal_length    sepal_width petal_length    petal_width species
3   4.8 3.4 1.9 0.2 setosa
3   6.1 3.0 4.9 1.8 virginica
4   5.4 3.7 1.5 0.2 setosa
5   6.0 3.0 4.8 1.8 virginica
5   6.5 3.2 5.1 2.0 virginica
7   5.7 2.9 4.2 1.3 versicolor

使用可調用函數進行選擇

df = pd.DataFrame(np.random.randn(6,4), index=list('abcdef'), columns=list('ABCD'))
df

out:
    A   B   C   D
a   0.737161    -0.514738   -1.457052   0.353337
b   0.801916    0.266375    -0.968714   -0.087611
c   -0.799433   -1.250238   -0.598625   1.259859
d   -0.780325   1.910598    -0.522512   -0.680966
e   -1.167703   -0.234484   0.243291    -1.931064
f   -0.147435   0.145292    -0.256636   -0.110757
df.loc[lambda df: df.index > 'c']
out:
    A   B   C   D
d   -0.780325   1.910598    -0.522512   -0.680966
e   -1.167703   -0.234484   0.243291    -1.931064
f   -0.147435   0.145292    -0.256636   -0.110757
df.loc[lambda df: df.A<0]

out:
    A   B   C   D
c   -0.799433   -1.250238   -0.598625   1.259859
d   -0.780325   1.910598    -0.522512   -0.680966
e   -1.167703   -0.234484   0.243291    -1.931064
f   -0.147435   0.145292    -0.256636   -0.110757
df.loc[lambda df: df.A<0, lambda df: ['A', 'B']]

out:
    A   B
c   -0.799433   -1.250238
d   -0.780325   1.910598
e   -1.167703   -0.234484
f   -0.147435   0.145292
?
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末商蕴,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子芝发,更是在濱河造成了極大的恐慌绪商,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辅鲸,死亡現場離奇詭異格郁,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門理张,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绵患,你說我怎么就攤上這事雾叭。” “怎么了落蝙?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵织狐,是天一觀的道長。 經常有香客問我筏勒,道長移迫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任管行,我火速辦了婚禮厨埋,結果婚禮上,老公的妹妹穿的比我還像新娘捐顷。我一直安慰自己荡陷,他們只是感情好,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布迅涮。 她就那樣靜靜地躺著废赞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪叮姑。 梳的紋絲不亂的頭發(fā)上唉地,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音传透,去河邊找鬼耘沼。 笑死,一個胖子當著我的面吹牛旷祸,可吹牛的內容都是我干的耕拷。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼托享,長吁一口氣:“原來是場噩夢啊……” “哼骚烧!你這毒婦竟也來了?” 一聲冷哼從身側響起闰围,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤赃绊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后羡榴,有當地人在樹林里發(fā)現了一具尸體碧查,經...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了忠售。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片传惠。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖稻扬,靈堂內的尸體忽然破棺而出卦方,到底是詐尸還是另有隱情,我是刑警寧澤泰佳,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布盼砍,位于F島的核電站,受9級特大地震影響逝她,放射性物質發(fā)生泄漏浇坐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一黔宛、第九天 我趴在偏房一處隱蔽的房頂上張望近刘。 院中可真熱鬧,春花似錦臀晃、人聲如沸跌宛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疆拘。三九已至,卻和暖如春寂曹,著一層夾襖步出監(jiān)牢的瞬間哎迄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工隆圆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留漱挚,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓渺氧,卻偏偏與公主長得像旨涝,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子侣背,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內容