pandasノート(5)フィルタ機能-loc&iloc
14381 ワード
データフィルタリングでは、通常のインデックス(loc)、位置インデックス(iloc)などを使用して実現できます.
関数フォーマット:df.loc([index],[column])indexをフィルタする必要がない場合は、コロン":"でビットを占める必要があります.
DataFrameの作成単行検索 複数行検索 単列 を検索複数の列を検索 複数行の複数列を検索
ilocの使い方はlocの使い方とほぼ同じで、indexをフィルタする必要がない場合も、同じようにコロン":"で占拠する必要があります.単行検索 複数行検索 単列 を検索複数の列を検索 複数行の複数列を検索
単列条件フィルタある列に基づいて条件を満たす行 をフィルタリングする.複数列の条件フィルタリングある数列に基づいて条件を満たす行 をフィルタリングする.行列フィルタは、必要に応じて条件を満たす行および列 をフィルタする.
loc:行列インデックス名によるフィルタリング
関数フォーマット:df.loc([index],[column])indexをフィルタする必要がない場合は、コロン":"でビットを占める必要があります.
DataFrameの作成
import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(16).reshape((4,4)),index = list('abcd'),columns=['A','B','C','D'])
df
#
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
df.loc[['a'],]
#
A B C D
a 0 1 2 3
# a,c
df.loc[['a','c'],]
#
A B C D
a 0 1 2 3
c 8 9 10 11
# A
df.loc[:,['A']]
#
A
a 0
b 4
c 8
d 12
# A,C
df.loc[:,['A','C']]
#
A C
a 0 2
b 4 6
c 8 10
d 12 14
# a,c ,A,C
df.loc[['a','c'],['A','C']]
#
A C
a 0 2
c 8 10
iloc:行列インデックスの位置に基づいてフィルタリング
ilocの使い方はlocの使い方とほぼ同じで、indexをフィルタする必要がない場合も、同じようにコロン":"で占拠する必要があります.
# 1
df.iloc[[0],]
#
A B C D
a 0 1 2 3
# 1,3
df.iloc[[0,2],]
#
A B C D
a 0 1 2 3
c 8 9 10 11
# 1-2
df.iloc[0:2,]
#
A B C D
a 0 1 2 3
b 4 5 6 7
# 1
df.iloc[:,[0]]
#
A
a 0
b 4
c 8
d 12
# 1,3
df.iloc[:,[0,2]]
#
A C
a 0 2
b 4 6
c 8 10
d 12 14
# 1-2
df.iloc[:,0:2]
#
A B
a 0 1
b 4 5
c 8 9
d 12 13
# 1-2 , 1-2
df.iloc[0:2,0:2]
#
A B
a 0 1
b 4 5
loc条件によるフィルタリング
df.loc[df['A']==4,:]
# ,
df.loc[df['A']==4]
#
A B C D
b 4 5 6 7
df.loc[(df['A']>2)&(df['B']<10)]
# df.loc[df['A']>2].loc[df['B']<10]
#
A B C D
b 4 5 6 7
c 8 9 10 11
df.loc[df['A']>4,["A",'B','C']]
#
A B C
c 8 9 10
d 12 13 14