経済統計の使い方
統計初心者の社会人向けに、経済データの解説をしています。「まとめページ」をご覧くだされば、全体的な内容がわかると思います。
python

【python】演算とデータタイプ(型)

演算とデータタイプ

pythonの基本的な知識として、演算とデータタイプについて説明します。

【python】pythonのまとめ 経済統計の使い方では、統計データの入手法から分析法まで解説しています。 https://officekaisuiyoku.com...

経済統計の使い方では、統計データの入手法から分析法まで解説しています。

変数

変数の代入

変数を定義してさまざまな演算ができます。aに1を代入するには

変数の代入:a=1

とします。

変数どうしの演算ができます。b=2と定義して、a+bを計算することができます。

a=1
b=2
c=a+b
print(c)
出力
3

変数の消去

変数の消去:del a

変数を消去するにはdel関数を使います。

a=1
del a
print(a)
出力
NameError: name 'a' is not defined

演算

演算の記号です。通常の数学とは違う形のものもあります。//は割り算の結果を切り捨てて整数で表示します。%は割り算をした余りを表示します。累乗は**で表します。エクセルの^と同じです。

演算子説明結果
+足し算3 + 25
引き算3 – 21
*掛け算3 * 26
/割り算3 / 21.5
//切り捨て除算3 // 21
%余り3%21
**累乗(べき乗)3**29

データタイプ(型)

🧾 Pythonの基本データ型

pythonの基本的なデータ型は以下です。

データ型型名説明
整数型int10整数
浮動小数点型float3.14小数を扱う
論理型boolTrue, False真理値(真か偽か)
文字列型str“hello”文字列
None型NoneTypeNone値が存在しない
リストlist[1, 2, 3]順序あり・変更可能
タプルtuple(1,2,3)順序あり・変更不可
辞書dict{“a”:1,”b”:2}キーと値の組
集合set{1,2,3}重複無しの集まり

データ型の調べ方

タイプを調べる:type()

オブジェクトがどのデータ型にあるかを調べる場合は、type()を使います。

a=1
print(type(a))
出力
<class 'int'>

型は自動的に決まる

型は作成したときにpythonが判断して自動的に決まります。

X1=10
print(type(X1))

X2='広島'
print(type(X2))

X3=True
print(type(X3))

X4=[1,2,3]
print(type(X4))
出力
<class 'int'>
<class 'str'>
<class 'bool'>
<class 'list'>

型の変更も可能

型の変換:型の関数(変数)

型の変換は、int()float()str()bool() などの関数を使用します。例えば、文字列 '123' を整数に変換するには int('123') とします。

ライブラリ変換方法備考
Pythonint()int("123") → 123文字列や小数を整数に変換
Pythonfloat()float("3.14") → 3.14整数・文字列を小数に
Pythonstr()str(100) → “100”何でも文字列に変換
Pythonbool()bool(0) → False0, 空文字, None は False,それ以外はTrue
a="123"
print(type(a))
a=int(a)
print(type(a))

出力

<class 'str'>
<class 'int'>

カッコと型の対応

pythonで使うカッコは3種類です。<>はカッコとしては使わず、不等号として使います。型との対応は以下です。

  • [] リスト
  • () タプル
  • {} 集合

さらに関数や辞書などでも使います。

  • () 関数:print(“Hello”)
  • 辞書 {}:{“a”:1,”b”:2}

NumPyのデータ型

Pythonの基本的なデータ型はオブジェクトの種類を表しますが、NumPyやPandasでは、配列やデータフレームの要素についてデータ型があります。整数や小数については、計算の速さと精度の兼ね合いでさまざまな種類がありますが、標準的な64ビット(int64,float64)が使われる場合が多く、ほかのものを使うことはあまりありません。独自のものとしては、データ型が混合しているobjectがあります。

🧪 NumPyの主なデータ型一覧

型名ビット数説明
int88ビット符号付き整数(-128~127)-100
int1616ビット符号付き整数30000
int3232ビット符号付き整数2000000
int6464ビット符号付き整数(大きな整数向け)(標準)10**18
uint88ビット符号なし整数(0~255)255
float1616ビット低精度の浮動小数点3.14
float3232ビット単精度浮動小数点3.1415
float6464ビット倍精度浮動小数点(標準)3.1415926535
bool1ビット相当論理値True
object可変任意のPythonオブジェクト“abc”, [1, 2]
str可変固定長の文字列‘abc’

データ型の調べ方

pythonではtype()関数を使いますが、NumPyでは、dtypeメソッドを使います。

import numpy as np

a=np.array([1,2,3])
print(a.dtype)

b=np.array([1.1,2.2,3.3])

print(b.dtype)

出力

int64
float64

データ型の変更

データ型の変更:astype(データ型)メソッド

データ型を変更するには、arr.astype関数を使います。astype メソッドを使用して型変換を行う際、変換先の型に互換性がないデータが含まれていると、エラーが発生することがあります。

🔄 NumPy の型変換(astype)一覧

変換先の型用途・意味備考
int / np.int32 / np.int64浮動小数点 → 整数astype(int)小数点以下は切り捨て
float / np.float32 / np.float64整数 → 小数astype(float)精度を指定できる
str / np.str数値 → 文字列astype(str)全て文字列に変換
bool / np.bool数値 → 真偽値astype(bool)0はFalse、それ以外はTrue
np.uint8符号なし整数(0~255)astype(np.uint8)画像処理などで使用
np.object混合型または文字列型への変換astype(object)異種型がある場合の安全変換
import numpy as np
a=np.array([1,2,3])
b=a.astype(float)
c=a.astype(str)
print(a)
print(b)
print(c)

出力

[1 2 3]
[1. 2. 3.]
['1' '2' '3']

Pandasのデータ型

pandasのデータ型は、pandas特有のものがあります。文字列はstringとなっています。カテゴリ型があります。日時型は、西暦(4桁)ー月(2桁)ー日(2桁)という形式で、例えば2024-01-01という形になります。時間差型は日・時間・分・秒をあらわすもので、1days00:00:00という形となります。

📊 Pandasの主なデータ型一覧

型名説明
int64整数型(欠損なし)100
float64浮動小数点型(欠損ありでもOK)3.14
bool論理型True
object任意のPythonオブジェクトを格納できる型。文字列や混合型のデータを含む場合に使用。“abc”
string新しい文字列型(v1.0以降)“abc”
categoryカテゴリ型(メモリ効率が高い)“A”, “B”
datetime64[ns]日時型(ナノ秒精度)2024-01-01
timedelta[ns]時間差型1 days 00:00:00

データ型の調べ方

import pandas as pd

a=pd.Series([1,2,3],name="A")
print(a.dtype)

b=pd.DataFrame({"B":[1,2,3]})
print(b.dtypes)

出力

int64 <-aのデータ型
B    int64 <-Bのデータに関するデータ型
dtype: object <-データフレーム全体はobject

Pandasのデータ型の変換

データ型の変更:astype(データ型)メソッド

Pandasのデータフレームの型の変換についてです。データフレーム全体のデータ型を変える時はデータフレームにastypeメソッドを使います。一列だけ変えたいときは、データフレーム[“列”]astypeメソッドを使います。

変換先の型用途・説明使用例備考
int / int64文字列や小数から整数にdf["列"].astype(int)欠損値があるとエラー
float / float64整数や文字列から小数にdf["列"].astype(float)NaNも扱える
str / string数値や論理値を文字列にdf["列"].astype(str)stringはPandas独自型
bool0/1や文字列を真偽値にdf["列"].astype(bool)“True”/”False”も可
category文字列をカテゴリ型に変換df["列"].astype("category")省メモリ&分類処理に有利
datetime64[ns]日付文字列を日時型に変換pd.to_datetime(df["列"])日時演算や抽出が可能になる
timedelta64[ns]時間差を表す型に変換pd.to_timedelta(df["列"])例: “1 days”, “00:05:00”
object混合データや任意の型を扱うdf["列"].astype(object)型が定まらない場合に自動で使われる

下の例は、文字列でできたデータフレーム全体を小数に変更し、次に年齢の列だけ整数に変更したものです。

import pandas as pd

df = pd.DataFrame({
    '年齢': ['25', '30', '35'],     # ← 文字列
    '得点': ['88.5', '92.0', '79.5']  # ←文字列
})
print(df)

a=df.astype(float)   #←小数に変更
print(a)

a['年齢']=a['年齢'].astype(int)  #←整数に変更
print(a)

出力

  年齢    得点    #文字列
0  25  88.5
1  30  92.0
2  35  79.5

     年齢    得点   #小数
0  25.0  88.5
1  30.0  92.0
2  35.0  79.5

   年齢    得点  #年齢は整数、得点は小数
0  25  88.5
1  30  92.0
2  35  79.5

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA