メインコンテンツへスキップ
見出し画像
Photo byai_gazou

同じ名前で出ていますけど…

    新しい環境に入った時、例えば同郷・同大学だったりすると、身近に感じることがある。でも慣れてくるとあれっ?と。
    私にとってCOUNT関数がそうかもしれない。
    ExcelにおいてCOUNT関数はわかりやすい関数だった。
    COUNT / COUNTA / COUNTIFの役割を理解すれば問題はなかった。
    COUNT関数は数値が入力されているセルを数える。
    COUNTA関数は空白ではないすべてのセルを数える。
    COUNTIF関数は指定した範囲内で特定条件に一致するセルの数を数える。
    この3つで足りた。

    しかしPandasでははてな?と戸惑うことがある。
    str.count('a')を見たとき、これはCOUNTIFではないかと。
    一度「数える」ということを整理する必要がある。

    AI君に質問してみた。

    【AI君の回答】
    ***************************************************************************************
    ✅ExcelのCOUNT、COUNTA、Pandasのdf.count()の比較

    まず、Excelでのカウントの基本と、pandasのdf.count()がそれらにどのように関連しているかを理解しましょう。

    Excel COUNT: この関数は、範囲内の数値を含むセルの数をカウントします。空のセル、テキスト、論理値は無視されます。

    Excel COUNTA: この関数は、範囲内の空ではないセルの数をカウントします。数値、テキスト、論理値、エラー値をカウントします。真に空のセルのみを無視します。

    pandasでは、DataFrame.count()メソッドはExcelのCOUNTAと似ています。デフォルトでは、各列(またはaxis=1を指定した場合は行)の非NaN(欠損値ではない)の値をカウントします。

    ✅ExcelのCOUNTIFとPandasの条件付きカウントの比較

    • Excel COUNTIF: この関数は、単一の条件を満たす範囲内のセルの数をカウントします。例えば、COUNTIF(A:A, ">5")は、A列で5より大きいセルの数をカウントします。

    pandasには直接的なCOUNTIF関数はありませんが、ブールインデックスとsum()メソッドを使用することで同じ機能を実現できます。SeriesまたはDataFrameに条件を適用すると、ブールSeries/DataFrameが返されます(条件を満たす行はTrue、そうでない行はFalse)。数値演算ではTrueが1として、Falseが0として扱われるため、このブールSeriesを合計すると、Trueの値の数(つまり、条件を満たす行の数)が得られます。
    例 1: 'ColA'が3より大きい行をカウント
       count_colA = (df['ColA'] > 3).sum()
    例 2: 'ColB'が'apple'である行をカウント
       count_colB = (df['ColB'] == 'apple').sum()

    ✅`Series.str.count()` の使用例
    `count('a')` のような形式で利用されるのは、pandasの`str`アクセサを介した文字列メソッドです。これは、特定の文字列列(Series)内の各要素について、指定された部分文字列が何回出現するかを数えます。
    例: count_char_a = df['ColB'].str.count('a')
    ***************************************************************************************

    画像

    理解できたようでもう一息と思い、私なりの図にしてみた。

    画像

    🔍さらに、私はこう覚えることにした。
    マンションは何階建て? → len(df)
    マンションの総戸数は? → df.size
    住んでいる部屋の数は?→ count()
    世代別の人数は? → value_counts()
    60代以上は? → (df["年齢"] >= 60).sum()

    ここまできてやっと理解できました。











     
     
    はじめまして。pythonやpandasの備忘録として書き始めます。

    あなたへのおすすめ