data = pd.DataFrame({
'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}, index=['a', 'b', 'c'])
print(data)
輸出:
A B C
a 1 4 7
b 2 5 8
c 3 6 9
從輸出可以看出,index 中元素為行索引名稱, 字典的鍵為列索引名稱,字典的值為DaraFrame的值,3行3列。
使用ioc屬性,依據行,列索引名稱獲取對應值。
print(data.loc['a', 'A']) 輸出:1
print(data.loc['a', 'C']) 輸出:7
取一個范圍的值,使用列表指定行,列范圍
print(data.loc['a':'c', 'B']) # B列的值,因為指定了行a到行c,B列
輸出:
a 4
b 5
c 6
Name: B, dtype: int64
同樣,不指定行索引,即所有的行,如下:
print(data.loc[:, 'B']) # 也是B列的值
可以同時指定行,列索引范圍
print(data.loc['a':'c', 'A':'B']) # A,B列的值
輸出:
A B
a 1 4
b 2 5
c 3 6
行列索引可以任意指定
print(data.loc['b':'c', 'A':'B']) # 第2,3 行 A,B列的值,
輸出:
A B
b 2 5
c 3 6
iloc()的使用,依據行列索引號取值
print(data.iloc[1, 2]) # 第2行 第3列的數據, 索引默認從0開始
輸出: 8
也可以取區域值,取區域使用列表傳行列名稱的索引值
print(data.iloc[1:3, 0:3]) # 第2 行到第3行(開區間,不包含第4行),第1列 到第3列的區間數據
輸出:
A B C
b 2 5 8
c 3 6 9