初心者向けPython in Excel : データ型について解説

designer

Python in Excel を使い始めると、最初につまずきやすいのが「データ型」の違いです。
文字列・数値・日付・リストや辞書など、PythonにはExcelとは異なるデータの扱い方があります。本記事では、Python in Excel でよく使う基本的なデータ型について、Excelとの違いを意識しながら初心者向けに解説します。

String(文字列)

文字や文章を表す型です。"Hello""ABC123" のように、文字を扱いたいときに使います。

image

Integer(整数)

小数点のない数値を表す型です。1-10100 など、個数や回数の計算によく使われます。

image

Float(浮動小数点数)

小数点を含む数値を表す型です。3.140.5 など、割合や平均値の計算で使います。

image

Boolean(真偽値)

True または False のどちらかを持つ型です。条件分岐や判定処理で使われます。

image

Datetime(日時)

日付や時刻を扱うための型です。Pythonでは主に datetime を使い、日付の計算や比較ができます。

Pythonの基本型(strintfloatbool)は言語のコアに組み込まれているのに対し、日付・時刻は datetime という標準ライブラリで提供されている機能です。そのため Python in Excel でも、日付をPythonとして扱いたい場合は datetime を明示的に import する必要があります。

Excelでは日付が最初から特別扱いされていますが、Pythonでは「日付=数値や文字列とは別の、専用ライブラリで扱うもの」という設計になっています。

image

List(リスト)

Excelの複数セルの値を、Pythonでまとめて扱うためのデータ型です。

リストに[1,2,3,4]を入れ、CTRL+ENTERで実行すると、以下のようにPythonオブジェクトで表示するとlistという文言だけ表示されます。

image

Excel値で表示させると、リストの内容が各々表示されます。

Excel値に変換すると、それぞれの値を通常のExcel操作と同様に扱うことが可能になります。

※Excel値とPythonオブジェクトの扱いの違いは下記リンクをご参照ください。

Python in Excel – 出力の種類:Pythonオブジェクト vs Excel値 – Lean Data Office

image
image

タプル型、セット型もリスト型と同様に扱えます。

Tuple(タプル)

タプル型は、複数の値を順序付きでまとめるが、後から変更できないデータ型です。

image

複数要素を含む、後から変更しない前提のリストに使用します。前述の通り、リスト型と同じく、Excel値での表示が可能です。

image
image

Set(セット)

セット型は、重複を許さず、順番を持たないデータ型です。

image

Excel値に変換すると、重複しないユニークな値のみセルに出力されます。

image
image

Dict(辞書)

辞書型は、「キー」と「値」を1対1で対応づけて管理するデータ型です。

image

辞書型は、リスト型のようにExcel値に変更しても値がセルに表示されません。

これは、Excelが辞書型をセルにどう展開すべきか仕様上決まっていないためです。

image
image

※”dict”表示のまま。

しかしながら、ドット記法でPythonオブジェクトのキーを参照し、表示することが可能です。

image

“dict”のセルを指定すると、キーがドロップダウンで選択できます。ここでは”fname”をクリックしてみます。

image
image

辞書型オブジェクト内のfnameキーを指定して’John’を表示させることができました。

ageも同じように参照できます。

image
image

まとめ

Python in Excel では、Excelと似た見た目の値でも、内部では異なるデータ型として扱われていることが重要なポイントです。
文字列・数値・真偽値といった基本型に加え、リスト・タプル・セット・辞書などの集合型、そして日時型(datetime)を正しく理解することで、Python in Excel を使ったデータ処理や自動化がスムーズになります。まずは各データ型の特徴と、Excel値とPythonオブジェクトの違いを意識することから始めましょう。

筋トレとオートメーションが趣味。 モバイルアプリ個人開発者。 データ処理・可視化とレポートにハマり備忘録と情報共有のためにブログ開設し運営している。