最終更新日:2021/8/14
全ての列を対象に、特定の文字が何個あるか調べる方法です。これまでに学んだコードの組み合わせで実現します。
大規模なデータを扱う際に、データの概要を把握する為に用います。
【説明すること】
- 1. それぞれのカラムに指定した文字が何個あるかカウントする
- 1.1 完全一致で数える :
df['clm'].isin(['x']).sum()
- 1.2 部分一致で数える :
df1b['clm'].str.contains('x').sum()
- 1.1 完全一致で数える :
1. それぞれのカラムに指定した文字が何個あるかカウントする
dfの全ての列に対して、特定の文字が何個含まれているか、個数をカウントする方法です。
1.1 完全一致で数える
for文で、.isin()
と.sum()
を使って、
と書きます。
これは、文字列がx(小文字のx)と「一致する」もの、を数えるという事です。
大文字と小文字は区別されます。
例えば、’male’と指定すると’female’は集計の対象外となります。
【ポイント】.sum()
のように、最後に関数をつける書き方は、今後多用します。dfに対して集計をする場合に便利です。
以下のcsvファイルを読み込んでコードの例を挙げます。これは、Kaggleのタイタニックのデータの一部です。
1.2 部分一致で数える
for文で、.contains()
と.sum()
を使って、
と書きます。
この場合、全てのカラムについて’x’(小文字のx)を「含む」ものを対象としています。
例えば、’male’を指定すると、’female’も集計の対象となります。
【ポイント】
文字列で、.str.contains()
と書く場合、対象のdfのカラムが全て文字列でないとエラーとなります。
例えば、文字列と数値を含むdfを対象にすると、エラーとなります。
以下では、カラムを文字列だけにして、コードを実行した例です。