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

経済統計の使い方では、統計データの入手法から分析法まで解説しています。
変数
変数の代入
変数を定義してさまざまな演算ができます。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 + 2 | 5 |
– | 引き算 | 3 – 2 | 1 |
* | 掛け算 | 3 * 2 | 6 |
/ | 割り算 | 3 / 2 | 1.5 |
// | 切り捨て除算 | 3 // 2 | 1 |
% | 余り | 3%2 | 1 |
** | 累乗(べき乗) | 3**2 | 9 |
データタイプ(型)
🧾 Pythonの基本データ型
pythonの基本的なデータ型は以下です。
データ型 | 型名 | 例 | 説明 |
---|---|---|---|
整数型 | int | 10 | 整数 |
浮動小数点型 | float | 3.14 | 小数を扱う |
論理型 | bool | True, False | 真理値(真か偽か) |
文字列型 | str | “hello” | 文字列 |
None型 | NoneType | None | 値が存在しない |
リスト | 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')
とします。
ライブラリ | 変換方法 | 例 | 備考 |
---|---|---|---|
Python | int() | int("123") → 123 | 文字列や小数を整数に変換 |
Python | float() | float("3.14") → 3.14 | 整数・文字列を小数に |
Python | str() | str(100) → “100” | 何でも文字列に変換 |
Python | bool() | bool(0) → False | 0, 空文字, 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の主なデータ型一覧
型名 | ビット数 | 説明 | 例 |
---|---|---|---|
int8 | 8ビット | 符号付き整数(-128~127) | -100 |
int16 | 16ビット | 符号付き整数 | 30000 |
int32 | 32ビット | 符号付き整数 | 2000000 |
int64 | 64ビット | 符号付き整数(大きな整数向け)(標準) | 10**18 |
uint8 | 8ビット | 符号なし整数(0~255) | 255 |
float16 | 16ビット | 低精度の浮動小数点 | 3.14 |
float32 | 32ビット | 単精度浮動小数点 | 3.1415 |
float64 | 64ビット | 倍精度浮動小数点(標準) | 3.1415926535 |
bool | 1ビット相当 | 論理値 | 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独自型 |
bool | 0/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
- 経済学Q&A(2025)その4
- 経済学Q&A(2025)その3
- 経済学Q&A(2025)その2
- 【python】データフレームの中身を知る、追加する(pandas)
- 【python】データフレームの結合(pandas)