Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでpandas Seriesに含まれる整数・浮動小数点・文字列のデータ型別カウント方法

はじめに

pandasのSeriesには、整数(int)、浮動小数点数(float)、文字列(str)など、さまざまなデータ型が混在していることがあります。本記事では、Pythonを使って特定のSeries内の各データ型の要素数をカウントするプログラムを作成する方法を解説します。

問題設定

入力 − 次のようなSeriesが与えられていると仮定します。

0    1
1    2
2    python
3    3
4    4
5    5
6    6.5

出力

整数・浮動小数点・文字列要素の合計数は、
integer count: 5
float count: 1
string count: 1

解決手順

この問題を解くためには、以下の手順に従います。

  • まず、対象となるSeriesを定義します。

  • lambda式とfilter()メソッドを組み合わせて、整数型の要素だけを抽出し、その件数を取得します。

len(pd.Series(filter(lambda x:type(x)==int,data)))
  • 同様に、lambda式とfilter()メソッドを使って、浮動小数点型の要素の件数を取得します。

len(pd.Series(filter(lambda x:type(x)==float,data)))
  • さらに、文字列型の要素についても同じ手法で件数を取得します。

len(pd.Series(filter(lambda x:type(x)==str,data)))

サンプルコード

実際のコード例を見てみましょう。

import pandas as pd
ls = [1,2,"python",3,4,5,6.5]
data = pd.Series(ls)
print("integer count:",len(pd.Series(filter(lambda x:type(x)==int,data))))
print("float count:",len(pd.Series(filter(lambda x:type(x)==float,data))))
print("string count:",len(pd.Series(filter(lambda x:type(x)==str,data))))

実行結果

integer count: 5
float count: 1
string count: 1

コードのポイント

  • type(x)==intのようにtype()関数で各要素のデータ型を判定しています。

  • filter()関数にlambda式を渡すことで、条件に一致する要素のみを効率的に抽出できます。

  • 抽出結果をpd.Series()でラップし、len()で件数を求めています。

この手法を使えば、混合データ型を含むSeriesから任意のデータ型の要素数を簡単に集計できます。データクレンジングや前処理の際に、データ型ごとの分布を把握したい場合に特に役立ちます。

  1. セットを使って文字列内の母音の数をカウントするPythonプログラム

    本記事では、Pythonを使って文字列内に含まれる母音の数をカウントする方法について解説します。セット(set)を活用した効率的な実装を中心に、初心者の方にもわかりやすく説明していきます。 問題の概要 問題文:任意の文字列が与えられたとき、その文字列に含まれる母音の数をセットを使って数えます。 基本的なアプローチとしては、文字列全体を先頭から順に走査し、各文字が母音であるかどうかを判定します。母音であればカウントを1ずつ増やしていき、最終的な合計を出力します。 実装例 def vowel_count(str_): count = 0 # 母音をセットとして定義 vowe

  2. Pythonで数値の合計ビット数をカウントするプログラムの作成方法

    まず数値を入力し、bin()関数を使ってその数値を2進数に変換します。次に出力される文字列の先頭2文字「0b」を削除し、最後に2進数文字列の長さを計算することで、合計ビット数を求めることができます。 実行例 入力:200 出力:8 解説 200の2進数表現は 11001000 です(8桁=8ビット) アルゴリズム ステップ1:数値を入力する。 ステップ2:bin()関数を使用して、数値を2進数に変換する。 ステップ3:bin()関数は出力文字列の先頭に「0b」という接頭辞を付加するため、 出力された2進数文字列から最初の2文字「0b」を削除する。 ステップ4:2進