Jupyter notebook(Python3)を使ってみようを使ってみようと思っても慣れていないうちは、どうしても処理に躓いてしまうものです。
例えば。Pythonのpandas機能にて、特定の条件にあてはまる数のカウントを行うにはどう対処すればいいのか理解していますか。
ここでは、Pandaを用いて条件にあったデータ数のカウントを行うための各種方法(特定の文字や数値範囲、複数列など)について解説していきます。
特定帝の列の各文字・記号のデータ数をカウントする方法【pandas(python)での条件指定】
それでは、ある列に着目した際に各文字や記号、数値のデータ数を数える方法について確認していきます。
まずは、csvを読み込み以下のようなデータフレーム(dataframe)が作成されたとします。
このsample列において、各記号(今回は英語a~e)のデータ数が何個あるのかをカウント(count)するには、pandasの機能のvalue_countsを使用するといいです。
value_countsの使い方としては、以下のよう予め条件として特定の列名(ヘッダー名)を指定しておくといいです。
import os
os.chdir(“C:\\sample”)
import pandas as pd
df= pd.read_csv(‘sample9.csv’,encoding=”SHIFT JIS”)
df[“sample”].value_counts()
すると以下の通り特定の値(記号)のカウントが実行されました。
なお、単純に列ごとや行ごとのすべてのデータ数のカウントを行う場合ではこちらにて記載していますので、参考にしてみてください。
Pandasで数値の条件によってカウントを行う方法【数値の以上以下などの範囲の条件】
なお、上述のよう特定の記号や数値だけでなく、~以上や~以下といった数値の条件を指定した上でデータの個数をカウントする方法もあります。
以下のデータを用いて、この列において数値的な条件に基づいたデータ数のカウントを行ってみましょう。
Pandasにて数値条件を指定してデータ数を数えていくためにはcountやvalue_countsではなく、sumを使うといいです。
具体的には、予め列や該当する数値の条件を指定した上で、その合計数はいくつなのかを表示させていき、以下のようなサンプルコードで表現できます。
(df[“age”] <= 20).sum()
今回のデータでは、ageの数値が20以下という条件ではその個数が2個となるとカウントできました。
なお、pandasにおいて~以上、~以下などと条件を指定して個数をカウントしたいのであれば、以下のようなコードを入れるといいです(今回は数値の範囲として25~40)。
((df[“age”] <= 40) & (df[“age”] >= 25)).sum()
このとき、()の位置に注意しましょう。
まとめ Pandasにて特定の条件にあったデータ数のカウント(count)を行う方法【value_countsの使い方など】
ここでは、jupyternotebook(python3)のpandas機能によって、指定の条件にあった数を数える方法について確認しました。
基本的には、count_values関数や条件を指定した上でのsum関数を使うと対応できることがほとんどです。
各種対処方法を理解して、pandasの使い方をマスターしていきましょう。
コメント
[…] ちなみに指定した条件を満たすデータ数をカウントする方法はこちらで記載していいますので、参考にしてみてください。 […]