Pandas

[Python] Pandas – ベクトルを作成する方法

Pandasでベクトルを作成するには、Seriesを使用します。

Seriesは1次元のデータ構造で、リストや配列のように扱えます。

Seriesはインデックスと値のペアで構成され、インデックスを指定することで要素にアクセスできます。

例えば、pd.Series([1, 2, 3])とすることで、3つの要素を持つベクトルを作成できます。

Seriesは数値、文字列、ブール値など様々なデータ型をサポートしています。

Pandasでベクトルを作成する方法

Seriesを使ったベクトルの作成

PandasのSeriesは、1次元のラベル付き配列で、ベクトルとして利用できます。

以下のコードでは、Seriesを使ってベクトルを作成する方法を示します。

import pandas as pd
# Seriesを使ってベクトルを作成
vector = pd.Series([1, 2, 3, 4, 5])
print(vector)
0    1
1    2
2    3
3    4
4    5
dtype: int64

リストからベクトルを作成する

Pythonのリストを使って、簡単にSeriesを作成することができます。

以下の例では、リストからベクトルを作成しています。

import pandas as pd
# リストからSeriesを作成
list_data = [10, 20, 30, 40, 50]
vector_from_list = pd.Series(list_data)
print(vector_from_list)
0    10
1    20
2    30
3    40
4    50
dtype: int64

NumPy配列からベクトルを作成する

NumPy配列を使用して、Seriesを作成することも可能です。

以下のコードでは、NumPy配列からベクトルを作成しています。

import pandas as pd
import numpy as np
# NumPy配列からSeriesを作成
numpy_array = np.array([5, 15, 25, 35, 45])
vector_from_numpy = pd.Series(numpy_array)
print(vector_from_numpy)
0     5
1    15
2    25
3    35
4    45
dtype: int64

辞書からベクトルを作成する

辞書を使って、キーをインデックス、値を要素とするSeriesを作成することもできます。

以下の例を見てみましょう。

import pandas as pd
# 辞書からSeriesを作成
dict_data = {'a': 1, 'b': 2, 'c': 3}
vector_from_dict = pd.Series(dict_data)
print(vector_from_dict)
a    1
b    2
c    3
dtype: int64

インデックスを指定してベクトルを作成する

Seriesを作成する際に、インデックスを指定することもできます。

以下のコードでは、カスタムインデックスを使用してベクトルを作成しています。

import pandas as pd
# インデックスを指定してSeriesを作成
custom_index = ['x', 'y', 'z']
vector_with_index = pd.Series([100, 200, 300], index=custom_index)
print(vector_with_index)
x    100
y    200
z    300
dtype: int64

ベクトルの操作方法

要素へのアクセス方法

PandasのSeriesでは、インデックスを使って要素にアクセスできます。

以下のコードでは、特定のインデックスの要素を取得する方法を示します。

import pandas as pd
# Seriesを作成
vector = pd.Series([10, 20, 30, 40, 50])
# インデックス1の要素にアクセス
element = vector[1]
print(element)
20

要素の追加・削除

Seriesに要素を追加したり、削除したりすることも可能です。

以下の例では、要素の追加と削除を行っています。

import pandas as pd
# Seriesを作成
vector = pd.Series([1, 2, 3])
# 要素の追加
vector[3] = 4
print("追加後:", vector)
# 要素の削除
vector = vector.drop(1)
print("削除後:", vector)
追加後: 0    1
1    2
2    3
3    4
dtype: int64
削除後: 0    1
2    3
3    4
dtype: int64

ベクトルのスライス

Seriesでは、スライスを使って特定の範囲の要素を取得できます。

以下のコードでは、スライスを使った例を示します。

import pandas as pd
# Seriesを作成
vector = pd.Series([10, 20, 30, 40, 50])
# スライスを使って要素を取得
sliced_vector = vector[1:4]
print(sliced_vector)
1    20
2    30
3    40
dtype: int64

ベクトルの演算(加算、減算、積算)

Series同士の演算も簡単に行えます。

以下の例では、加算、減算、積算を行っています。

import pandas as pd
# 2つのSeriesを作成
vector1 = pd.Series([1, 2, 3])
vector2 = pd.Series([4, 5, 6])
# 加算
addition = vector1 + vector2
print("加算:", addition)
# 減算
subtraction = vector1 - vector2
print("減算:", subtraction)
# 積算
multiplication = vector1 * vector2
print("積算:", multiplication)
加算: 0    5
1    7
2    9
dtype: int64
減算: 0   -3
1   -3
2   -3
dtype: int64
積算: 0    4
1   10
2   18
dtype: int64

条件に基づくフィルタリング

Seriesでは、条件を指定して要素をフィルタリングすることができます。

以下のコードでは、特定の条件を満たす要素を取得しています。

import pandas as pd
# Seriesを作成
vector = pd.Series([10, 20, 30, 40, 50])
# 条件に基づくフィルタリング
filtered_vector = vector[vector > 30]
print(filtered_vector)
3    40
4    50
dtype: int64

ベクトルの応用例

ベクトル同士の演算

PandasのSeriesを使って、ベクトル同士の演算を行うことができます。

以下の例では、2つのベクトルの加算、減算、積算を示します。

import pandas as pd
# 2つのSeriesを作成
vector1 = pd.Series([1, 2, 3])
vector2 = pd.Series([4, 5, 6])
# ベクトル同士の演算
addition = vector1 + vector2
subtraction = vector1 - vector2
multiplication = vector1 * vector2
print("加算:", addition)
print("減算:", subtraction)
print("積算:", multiplication)
加算: 0    5
1    7
2    9
dtype: int64
減算: 0   -3
1   -3
2   -3
dtype: int64
積算: 0    4
1   10
2   18
dtype: int64

ベクトルの統計量計算(平均、分散、標準偏差)

Seriesを使って、ベクトルの統計量を簡単に計算できます。

以下のコードでは、平均、分散、標準偏差を計算しています。

import pandas as pd
# Seriesを作成
vector = pd.Series([10, 20, 30, 40, 50])
# 統計量の計算
mean = vector.mean()
variance = vector.var()
std_dev = vector.std()
print("平均:", mean)
print("分散:", variance)
print("標準偏差:", std_dev)
平均: 30.0
分散: 250.0
標準偏差: 15.811388300841896

ベクトルの正規化

ベクトルの正規化は、ベクトルの長さを1にする操作です。

以下の例では、正規化を行っています。

import pandas as pd
import numpy as np
# Seriesを作成
vector = pd.Series([3, 4])
# ベクトルの正規化
norm = np.linalg.norm(vector)
normalized_vector = vector / norm
print("正規化されたベクトル:", normalized_vector)
正規化されたベクトル: 0    0.6
1    0.8
dtype: float64

ベクトルのソートと並べ替え

Seriesでは、要素をソートして並べ替えることができます。

以下のコードでは、ベクトルを昇順にソートしています。

import pandas as pd
# Seriesを作成
vector = pd.Series([40, 10, 30, 20, 50])
# ソート
sorted_vector = vector.sort_values()
print("ソートされたベクトル:", sorted_vector)
1    10
3    20
2    30
0    40
4    50
dtype: int64

欠損値の処理

Seriesには欠損値が含まれることがあります。

以下の例では、欠損値を処理する方法を示します。

import pandas as pd
import numpy as np
# 欠損値を含むSeriesを作成
vector = pd.Series([1, 2, np.nan, 4, 5])
# 欠損値を削除
cleaned_vector = vector.dropna()
print("欠損値を削除したベクトル:", cleaned_vector)
# 欠損値を特定の値で埋める
filled_vector = vector.fillna(0)
print("欠損値を0で埋めたベクトル:", filled_vector)
欠損値を削除したベクトル: 0    1.0
1    2.0
3    4.0
4    5.0
dtype: float64
欠損値を0で埋めたベクトル: 0    1.0
1    2.0
2    0.0
3    4.0
4    5.0
dtype: float64

DataFrameとの連携

DataFrameの列をベクトルとして扱う

PandasのDataFrameの各列は、Seriesとして扱うことができます。

以下の例では、DataFrameの列をベクトルとして取得しています。

import pandas as pd
# DataFrameを作成
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6]
}
df = pd.DataFrame(data)
# 列'A'をベクトルとして取得
vector_A = df['A']
print("列'A'をベクトルとして扱った結果:")
print(vector_A)
列'A'をベクトルとして扱った結果:
0    1
1    2
2    3
Name: A, dtype: int64

DataFrameから特定の列を抽出してベクトルを作成する

DataFrameから特定の列を抽出して、新しいSeries(ベクトル)を作成することができます。

以下のコードでは、特定の列を抽出しています。

import pandas as pd
# DataFrameを作成
data = {
    'A': [10, 20, 30],
    'B': [40, 50, 60]
}
df = pd.DataFrame(data)
# 列'B'を抽出してベクトルを作成
vector_B = df['B']
print("列'B'を抽出して作成したベクトル:")
print(vector_B)
列'B'を抽出して作成したベクトル:
0    40
1    50
2    60
Name: B, dtype: int64

複数のベクトルをDataFrameに変換する

複数のSeries(ベクトル)を使って、新しいDataFrameを作成することもできます。

以下の例では、2つのベクトルをDataFrameに変換しています。

import pandas as pd
# 2つのSeriesを作成
vector1 = pd.Series([1, 2, 3])
vector2 = pd.Series([4, 5, 6])
# 複数のベクトルをDataFrameに変換
df = pd.DataFrame({'A': vector1, 'B': vector2})
print("複数のベクトルをDataFrameに変換した結果:")
print(df)
複数のベクトルをDataFrameに変換した結果:
   A  B
0  1  4
1  2  5
2  3  6

まとめ

この記事では、Pandasを使用してベクトルを作成し、操作する方法について詳しく解説しました。

具体的には、Seriesを使ったベクトルの作成方法や、ベクトルの演算、統計量の計算、欠損値の処理など、実践的な内容を取り上げました。

これらの知識を活用することで、データ分析や処理の効率を高めることができるでしょう。

次のステップとして、実際のデータを使ってこれらの操作を試してみることをお勧めします。

関連記事

Back to top button