Pandasの.locと.ilocの違い
2022/1/18 2022/4/15
Python初心者で色々調べていますが、似たようなメソッドがあって、時々困りますね。
今回はPandasの.locと.ilocの違いについて簡単にまとめました。
サンプルコード
# Create data frame
df = pd.DataFrame([[0, 1, 2],
[10, 11, 12],
[20, 21, 22],
[30, 31, 32]],
columns = ["Col1", "Col2", "Col3"], index=["Row1","Row2","Row3", "Row4"])
# <0> DataFrame
print("--------\n<0> DataFrame", df, sep="\n")
# <1> Specify labels of row and column
print("--------\n<1> Specify labels of row and column: df.loc[\"Row2\",\"Col2\"]")
print(df.loc["Row2","Col2"])
# <2> Specify label of row
print("--------\nSpecify label of row: df.loc[\"Row2\"]")
print(df.loc["Row2"])
# <3> Specify label of column
print("--------\n<3> Specify label of column: df.loc[:,\"Col2\"]")
print(df.loc[:,"Col2"])
# <4> Specify indexes of row and column
print("--------\n<4> Specify indexes of row and column: df.iloc[2,2]")
print(df.iloc[2,2])
# <5> Specify index of row
print("--------\n<5> Specify index of row: df.iloc[2]")
print(df.iloc[2])
# <6> Specify index of column
print("--------\n<6> Specify index of column: df.iloc[:,2]")
print(df.iloc[:,2])
サンプルコード結果
--------
<0> DataFrame
Col1 Col2 Col3
Row1 0 1 2
Row2 10 11 12
Row3 20 21 22
Row4 30 31 32
--------
<1> Specify labels of row and column: df.loc["Row2","Col2"]
11
--------
Specify label of row: df.loc["Row2"]
Col1 10
Col2 11
Col3 12
Name: Row2, dtype: int64
--------
<3> Specify label of column: df.loc[:,"Col2"]
Row1 1
Row2 11
Row3 21
Row4 31
Name: Col2, dtype: int64
--------
<4> Specify indexes of row and column: df.iloc[2,2]
22
--------
<5> Specify index of row: df.iloc[2]
Col1 20
Col2 21
Col3 22
Name: Row3, dtype: int64
--------
<6> Specify index of column: df.iloc[:,2]
Row1 2
Row2 12
Row3 22
Row4 32
Name: Col3, dtype: int64