🎉

[Pandas入門シリーズ第5回] データ型と変換

に公開

はじめに

本記事は「Pythonでデータを分析するPandas入門」シリーズの第5回です.
本シリーズでは, Pythonのデータ分析ライブラリである Pandas を使って,「データを扱い,分析できる状態」になること を目標としています.

第4回では,欠損値の扱い方 を説明しました.

第5回では,不具合が発生しやすい, データ型と変換 を説明します.

私のPandasライブラリのバージョンは "2.3.3" です.

本シリーズの構成

シリーズ構成予定(全11記事)

  1. Pandasのインストール ~ 基本構造
  2. DataFrameの作成と基本操作
  3. データの抽出(loc/iloc・条件フィルタリング)
  4. 欠損値の処理
  5. データ型と変換(本記事)
  6. データの並び替えとランキング
  7. グループ化と集計
  8. データ結合(公開後にリンクを追加する予定)
  9. ピボットテーブルとクロス集計(公開後にリンクを追加する予定)
  10. 時系列データ処理(公開後にリンクを追加する予定)
  11. 可視化(公開後にリンクを追加する予定)

本シリーズのゴール

本シリーズでは,以下のポイントが実装できるようになることを目標としています.

  • データの読み込み
  • データの確認
  • 前処理(欠損値・型変換など)
  • データ抽出・加工
  • データの集計・分析
  • データの可視化

データを分析して,可視化できるようになること.

本記事のゴール

本記事では,以下のポイントを理解することを目標としています.

  • データ型を理解する
  • データ型を確認できる
  • データ型を変換できる

Pandasライブラリの読み込み

Pandasを使うためには,まずライブラリの読み込みから始めます.

import pandas as pd

Pandasライブラリを pd という名前として,扱えるようにしています.
以降では pd という名前を使っていきます.

使用するCSVファイルに関して

使用するCSVファイル(data.csv)の詳細は下記のとおりです.

data.csv
名前,年齢,年収,入社日,部署
A,"25",300,2020-01-01,営業
B,"30",500,2019/05/10,開発
C,22,250,2021-03-15,営業
D,28,"400",2020-07-20,人事
E,35,600,2018-11-01,開発
F,26,320,2022/02/28,
G,31,520,2019-09-09,開発
H,29,,2020-12-01,人事
I,24,280,2021/06/18,営業
J,33,550,,開発
K,27,350,2020-04-01,営業
L,36,620,2017/08/30,人事

以降では,上記CSVファイルを使用していきます.

データ型とは?

データ型とは, データの種類(数値・文字列・日付など) を指します.
主なデータ型を下表にまとめます.

データ型 内容
int64 整数
float64 小数
object 文字列
datetime64 日付

データ型の確認

データ型の確認方法を説明します.

# CSVファイルの読み込み
df = pd.read_csv("data.csv")

# データ型の確認
print(f"df.dtypes =\n{df.dtypes}")
# df.dtypes =
# 名前    object
# 年齢    int64
# 年収    float64
# 入社日  object
# 部署    object
# dtype: object

print(f"df =\n{df}")
# df = 
#    名前  年齢   年収      入社日     部署
# 0   A    25   300.0  2020-01-01   営業
# 1   B    30   500.0  2019/05/10   開発
# 2   C    22   250.0  2021-03-15   営業
# 3   D    28   400.0  2020-07-20   人事
# 4   E    35   600.0  2018-11-01   開発
# 5   F    26   320.0  2022/02/28   NaN
# 6   G    31   520.0  2019-09-09   開発
# 7   H    29     NaN  2020-12-01   人事
# 8   I    24   280.0  2021/06/18   営業
# 9   J    33   550.0         NaN   開発
# 10  K    27   350.0  2020-04-01   営業
# 11  L    36   620.0  2017/08/30   人事

データ型を確認する際には,DataFrameオブジェクトのdtypesプロパティを使用します.
DataFrameオブジェクトのdtypesプロパティの戻り値を下表にまとめます.

意味 データ型 備考
DataFrameのデータ型 pandas.Series 各列のデータ型を返す

df.dtypesプロパティの詳細は,下記の公式リファレンスを参照ください.

データ型の変換

データ型の変換方法を説明します.

数値型への型変換

データ型を数値型へ型変換する方法を説明します.

# CSVファイルの読み込み
df = pd.read_csv("data.csv")

# 年収を数値型へ型変換 (変換できない値はNaNになる)
df["年収"] = pd.to_numeric(df["年収"], errors="coerce")
print(f"df.dtypes =\n{df.dtypes}")
# df.dtypes =
# 名前    object
# 年齢    int64
# 年収    float64
# 入社日  object
# 部署    object
# dtype: object

print(f"df =\n{df}")
# df =
#    名前  年齢   年収     入社日      部署
# 0   A    25   300.0  2020-01-01   営業
# 1   B    30   500.0  2019/05/10   開発
# 2   C    22   250.0  2021-03-15   営業
# 3   D    28   400.0  2020-07-20   人事
# 4   E    35   600.0  2018-11-01   開発
# 5   F    26   320.0  2022/02/28   NaN
# 6   G    31   520.0  2019-09-09   開発
# 7   H    29     NaN  2020-12-01   人事
# 8   I    24   280.0  2021/06/18   営業
# 9   J    33   550.0         NaN   開発
# 10  K    27   350.0  2020-04-01   営業
# 11  L    36   620.0  2017/08/30   人事

Pandasライブラリのto_numeric()メソッドの詳細は,下記の公式リファレンスを参照ください.

日付型への型変換

データ型を日付型へ型変換する方法を説明します.

# CSVファイルの読み込み
df = pd.read_csv("data.csv")

# 入社日を日付型へ型変換 (変換できない値はNaTになる)
df["入社日"] = pd.to_datetime(df["入社日"], errors="coerce")
print(f"df.dtypes =\n{df.dtypes}")
# df.dtypes =
# 名前    object
# 年齢    int64
# 年収    float64
# 入社日  datetime64[ns]
# 部署    object
# dtype: object

print(f"df =\n{df}")
# df =
#    名前  年齢    年収     入社日     部署
# 0   A    25   300.0  2020-01-01   営業
# 1   B    30   500.0         NaT   開発
# 2   C    22   250.0  2021-03-15   営業
# 3   D    28   400.0  2020-07-20   人事
# 4   E    35   600.0  2018-11-01   開発
# 5   F    26   320.0         NaT   NaN
# 6   G    31   520.0  2019-09-09   開発
# 7   H    29     NaN  2020-12-01   人事
# 8   I    24   280.0         NaT   営業
# 9   J    33   550.0         NaT   開発
# 10  K    27   350.0  2020-04-01   営業
# 11  L    36   620.0         NaT   人事

Pandasライブラリのto_datetime()メソッドの詳細は,下記の公式リファレンスを参照ください.

終わりに

本記事では,Pandasに関する以下の内容を説明しました.

  • データ型の確認方法
  • データ型を数値型へ型変換
  • データ型を日付型へ型変換

次回予告

第6回では,「データの並び替えとランキング」について説明します.

参考文献

本記事を作成するに当たって参考にしたサイトをまとめました.

Discussion