Pandasにおけるlocとiloc関数の使い方の詳細(ソース+インスタンス)
2698 ワード
loc関数:行インデックス「Index」の具体的な値から行データ(Indexが「A」の行など)を取得します.
iloc関数:行番号による行データ(2行目のデータなど)の取得
本稿ではloc,ilocでよく見られる5つの使い方を示し,詳細なコードを添付する.
1.loc、ilocによる行データの抽出
2.loc、ilocによるカラムデータの抽出
3.loc、ilocによる指定行抽出、指定列データの抽出
4.loc、ilocによるすべてのデータの抽出
5.loc関数を用いて、あるデータからデータが存在する行を抽出する
また、以下のいくつかの書き方は、データが存在する行を抽出することもでき、5つ目の使い方と類似しており、補足としてのみ使用されます.
loc関数を利用する時、indexが同時に、同じIndexをすべて抽出して、利点は:indexが人名で、データボックスがすべての人のデータであれば、私はある人の複数のデータを抽出して分析することができます;欠点は、indexが特定の意味を持たず、重複する場合、抽出されたデータはさらに処理する必要があり、利用可能である.reset_index()関数indexのリセット
同様に、atとiat関数は指定した行列の値を抽出することができ、詳細はブログ(DataFrameのat、iat関数の詳細)を参照してください.
最後に、このブログのlocとiloc関数は指定した行列データを抽出し、Dateframe指定した行列データを削除すると、ブロガーの以下のブログを参照することができます(ジャンプをクリック). Drop関数とisin関数(DataFrame指定行列削除) DataFrame抽出(削除)指定行列(isin関数、drop関数)
iloc関数:行番号による行データ(2行目のデータなど)の取得
本稿ではloc,ilocでよく見られる5つの使い方を示し,詳細なコードを添付する.
1.loc、ilocによる行データの抽出
import numpy as np
import pandas as pd
# Dataframe
data=pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('ABCD'))
In[1]: data
Out[1]:
A B C D
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
# 'a'
In[2]: data.loc['a']
Out[2]:
A 0
B 1
C 2
D 3
# , 'a' ,
In[3]: data.iloc[0]
Out[3]:
A 0
B 1
C 2
D 3
2.loc、ilocによるカラムデータの抽出
In[4]:data.loc[:,['A']] # 'A' , data.loc[:,['A','B']]
Out[4]:
A
a 0
b 4
c 8
d 12
In[5]:data.iloc[:,[0]] # 0 , data.iloc[:,[0,1]]
Out[5]:
A
a 0
b 4
c 8
d 12
3.loc、ilocによる指定行抽出、指定列データの抽出
In[6]:data.loc[['a','b'],['A','B']] # index 'a','b', 'A','B'
Out[6]:
A B
a 0 1
b 4 5
In[7]:data.iloc[[0,1],[0,1]] # 0、1 , 0、1
Out[7]:
A B
a 0 1
b 4 5
4.loc、ilocによるすべてのデータの抽出
In[8]:data.loc[:,:] # A,B,C,D
Out[8]:
A B C D
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
In[9]:data.iloc[:,:] # 0,1,2,3
Out[9]:
A B C D
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
5.loc関数を用いて、あるデータからデータが存在する行を抽出する
In[10]: data.loc[data['A']==0] # data ( : A 0 )
Out[10]:
A B C D
a 0 1 2 3
In[11]: data.loc[(data['A']==0)&(data['B']==2)] # data ( )
Out[11]:
A B C D
a 0 1 2 3
また、以下のいくつかの書き方は、データが存在する行を抽出することもでき、5つ目の使い方と類似しており、補足としてのみ使用されます.
In[12]: data[data['A']==0] #dataframe
In[13]: data[data['A'].isin([0])] #isin
In[14]: data[(data['A']==0)&(data['B']==2)] #dataframe
In[15]: data[(data['A'].isin([0]))&(data['B'].isin([2]))] #isin
Out[15]:
A B C D
a 0 1 2 3
loc関数を利用する時、indexが同時に、同じIndexをすべて抽出して、利点は:indexが人名で、データボックスがすべての人のデータであれば、私はある人の複数のデータを抽出して分析することができます;欠点は、indexが特定の意味を持たず、重複する場合、抽出されたデータはさらに処理する必要があり、利用可能である.reset_index()関数indexのリセット
同様に、atとiat関数は指定した行列の値を抽出することができ、詳細はブログ(DataFrameのat、iat関数の詳細)を参照してください.
最後に、このブログのlocとiloc関数は指定した行列データを抽出し、Dateframe指定した行列データを削除すると、ブロガーの以下のブログを参照することができます(ジャンプをクリック).