Pandasを使って、ある列にある値を含むデータフレームの行数を取得するにはどうしたらいいですか?例えば、次のようなデータフレームがあります。
ClientID LastName
0 34 Johnson
1 67 Smith
2 53 Brows
'LastName'列に 'Smith'がある行の番号を調べるにはどうしたらいいですか?
Smith'と一致するすべてのインデックスを取得する。
>>> df.loc[df['LastName']=='Smith'].index
Int64Index([1], dtype='int64')
または
>>> df.loc[df['LastName']=='Smith'].index.values
array([1])
または、1つしかなくて整数が欲しい場合は、単にサブセット
>>> df.loc[df['LastName']=='Smith'].index[0]
1
df.loc[df.LastName == 'Smith']
は行を返します。
ClientID LastName
1 67 Smith
と
df.loc[df.LastName == 'Smith'].index
はインデックスを返します。
Int64Index([1], dtype='int64')
注: カラム名 'LastName'と 'Last Name'、あるいは 'lastname'は3つのユニークな名前です。ベストプラクティスは、まずdf.columnsを使って正確な名前を確認することです。列名からすべての空白を取り除く必要がある場合は、まず、次のようにします。
df.columns = [x.strip().replace(' ', '') for x in df.columns]