Python | Pandas | “dtypeの説明

2024年1月7日

Pythonとは,高レベルの汎用プログラミング言語であり,読みやすさとシンプルさで知られている.Web開発やデータサイエンス,人口知能,機械学習など幅広く利用されている.なお,レベルの高低はハードウェアに近いかどうかを意味しており,レベルが低いとハードウェアに近いことを意味している.

Pandasとは,Python向けに人気のあるオープンソースのデータ操作および分析ライブラリーである.異なるフォーマットでの読み書きするツールに加えて,効率的にデータ保存および大規模なデータセットを操作するためのデータ構造を提供する.

本記事では,Pandasにおいて"Series"や"DataFrame"を利用する際に出現するデータタイプ(dtype)の詳細について以下に記す.

実施環境

各バージョンの確認方法はこちら

OS: Windows11
VS Code: 1.85.1
Python 3.12.0
Pandas 2.1.4
Numpy 1.26.2

事前知識

Pyファイルに"Series"と"dtype"を利用した以下コードを入力し,実行する.

import pandas as pd

# Creating a Series
s = pd.Series([1, 3, 5, 6, 8])

# Checking the data type
print("dtype:", s.dtype)

■実行結果

以下のように,一次元データが格納されている"s"のデータタイプ(dtype)である"int64″が出力される.

dtype: int64

データタイプ(“dtype")の詳細

Pandasの基礎の2つの"class"である一次元データを利用する"Series"と二次元データを利用する"DataFrame"では,データは様々なデータタイプ(dtype)で格納される.データタイプには,様々なタイプがあり,今回はinteger(整数)とfloating-point number(浮動小数点数)に関わる"int32″, “int64", “float32", “float64″について説明する.

int64

“int64″とは,integer(整数)の64-bitを意味しており,32-bitよりも幅広い範囲の整数を利用できる.
整数での表示範囲は,"-9,223,372,036,854,775,808″から"9,223,372,036,854,775,807″となる.
計算方法は,以下となる.

計算方法(範囲の最小): -2^(64-1)
計算方法(範囲の最大): 2^(64-1)-1

以下のように,numpyを利用して出力することもできる.

import numpy as np

int64_info = np.iinfo(np.int64)
print(int64_info)

■実行結果

Machine parameters for int64
---------------------------------------------------------------  
min = -9223372036854775808
max = 9223372036854775807
--------------------------------------------------------------- 

int32

“int32″とは,integer(整数)の32-bitを意味しており,64-bitよりも狭い範囲の整数しか利用できない.
整数での表示範囲は,"-2,147,483,648″から"2,147,483,647″となる.
計算方法は,以下となる.

計算方法(範囲の最小): -2^(32-1)
計算方法(範囲の最大): 2^(32-1)-1

以下のように,numpyを利用して出力することもできる.

import numpy as np

int32_info = np.iinfo(np.int32)
print(int32_info)

■実行結果

Machine parameters for int32
---------------------------------------------------------------  
min = -2147483648
max = 2147483647
---------------------------------------------------------------

float64

“float64″とは,64-bit floating-point number(浮動小数点数)を意味している.
浮動小数点での表示範囲は,約"-1.798*10^308″から約"1.798*10^308″となる.
プラス域の最小表示は,約"2.225*10^(-308)"となる.

以下のように,numpyを利用して出力することもできる.

import numpy as np

float64_info = np.finfo(np.float64)
print(float64_info)

■実行結果

Machine parameters for float64
---------------------------------------------------------------  
precision =  15   resolution = 1.0000000000000001e-15
machep =    -52   eps =        2.2204460492503131e-16
negep =     -53   epsneg =     1.1102230246251565e-16
minexp =  -1022   tiny =       2.2250738585072014e-308
maxexp =   1024   max =        1.7976931348623157e+308
nexp =       11   min =        -max
smallest_normal = 2.2250738585072014e-308   smallest_subnormal = 4.9406564584124654e-324
--------------------------------------------------------------- 

float32

“float32″とは,32-bit floating-point number(浮動小数点数)を意味している.
浮動小数点での表示範囲は,約"-3.402*10^38″から約"3.402*10^38″となる.
プラス域の最小表示は,約1.401*10^(-45)"となる.

以下のように,numpyを利用して出力することもできる.

import numpy as np

float32_info = np.finfo(np.float32)
print(float32_info)

■実行結果

Machine parameters for float32
---------------------------------------------------------------  
precision =   6   resolution = 1.0000000e-06
machep =    -23   eps =        1.1920929e-07
negep =     -24   epsneg =     5.9604645e-08
minexp =   -126   tiny =       1.1754944e-38
maxexp =    128   max =        3.4028235e+38
nexp =        8   min =        -max
smallest_normal = 1.1754944e-38   smallest_subnormal = 1.4012985e-45
---------------------------------------------------------------

参照

pandas | pandas.Series.dtype

pandas | pandas.DataFrame.dtypes

pandas | User Guide | Essential basic funtionality | dtypes

以上

Pythondtype,Pandas

Posted by クマガイ