Python での iloc と loc の使用

最近、loc と iloc のスライスの使い方を知り、いろいろな使い方があることがわかったので、簡単な例で使い方をまとめたり、期間中のメモもたくさん借りたりしました。コメント欄の友人からの修正に。
Pandas は、辞書のような方法で列の値を取得します。
データ data.csv の分布は次のとおりです。
ここに画像の説明を挿入
データを表示します。

import pandas as pd

data = pd.read_csv('./data.csv',index_col=0,encoding='gb2312')
print(data)
print(data.shape)
index = data.index
col = data.columns
print(index)
print(col)

結果は次のとおりです。

   A   B   C   D   E   F
a   1   2   3   4   5   6
b   7   8   9  10  11  12
c  13  14  15  16  17  18
d  19  20  21  22  23  24
e  25  26  27  28  29  30
f  31  32  33  34  35  36
g  37  38  39  40  41  42
h  43  44  45  46  47  48
(8, 6)
Index(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'], dtype='object')
Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object')

index は列のインデックス ラベル、columns は行のインデックス ラベルであることがわかります.このとき、行列は 8*6 の行列です。

loc: ラベル インデックス

つまり、行と列のラベルは索引付けに使用されます
. 理解を容易にするために、loc と iloc で与えられた例を 1 つずつ照合します. 理解できない友人がいる場合は、コメント領域で対話を歓迎します.

  1. 1行目から2行目、1列目から3列目までの値を取得したい場合:
x = data.loc['a':'b','A':'C']
print(x)

結果は次のとおりです。

   A  B  C
a  1  2  3
b  7  8  9
  1. 最初の 2 行のすべての列のデータを取得する必要がある場合:
x = data.loc['a':'b',:]
print(x)

結果は次のとおりです。

   A  B  C   D   E   F
a  1  2  3   4   5   6
b  7  8  9  10  11  12
  1. 2 列目から 3 列目までのすべての行のデータを取得する必要がある場合:
x = data.loc[:,'B':'C']
print(x)

結果は次のとおりです。

    B   C
a   2   3
b   8   9
c  14  15
d  20  21
e  26  27
f  32  33
g  38  39
h  44  45
  1. 間隔の行と列にインデックスを付ける場合:
    たとえば、2 行目と 4 行目、および 1 列目と 4 列目の値を取得します。
x=data.loc[['b','d'],['A','D']]
print(x)

結果は次のとおりです。

    A   D
b   7  10
d  19  22

5. 条件に従ってインデックスを作成します。たとえば、19 より大きく、3 列目と 5 列目にある列 A の値を取得します。

x=data.loc[data['A'] > 19, ['C', 'E']]
print(x)

結果は次のとおりです。

    C   E
e  27  29
f  33  35
g  39  41
h  45  47

iloc: ロケーション インデックス

  1. 1行目から2行目、1列目から3列目までの値を取得したい場合:
x = data.iloc[0:2,0:3]
print(x)

結果は次のとおりです。

   A  B  C
a  1  2  3
b  7  8  9
  1. 最初の 2 行のすべての列のデータを取得する必要がある場合:
x = data.iloc[0:2,:]
print(x)

結果は次のとおりです。

   A  B  C   D   E   F
a  1  2  3   4   5   6
b  7  8  9  10  11  12
  1. 2 列目から 3 列目までのすべての行のデータを取得する必要がある場合:
x = data.iloc[:,1:3]
print(x)

結果は次のとおりです。

    B   C
a   2   3
b   8   9
c  14  15
d  20  21
e  26  27
f  32  33
g  38  39
h  44  45
  1. 間隔の行と列にインデックスを付ける場合:
    たとえば、2 行目と 4 行目、および 1 列目と 4 列目の値を取得します。
x=data.iloc[[1,3],[0,3]]
print(x)

結果は次のとおりです。

    A   D
b   7  10
d  19  22

5. 条件に従ってインデックスを作成します。たとえば、19 より大きく、3 列目と 5 列目にある列 A の値を取得します。

x=data.iloc[(data['A'] > 19).values, [2, 4]]
print(x)

結果は次のとおりです。

    C   E
e  27  29
f  33  35
g  39  41
h  45  47

要約:したがって、loc と iloc の使用法を要約すると、data.loc[インデックスを作成する行ラベル、インデックスを作成する列ラベル]data.iloc[インデックスを作成する行、インデックスを作成する列]

おすすめ

転載: blog.csdn.net/qq_45699150/article/details/123590426