データ分析を始めるには、Pandasの基本的なデータ構造を理解することが重要です。Pandasには、SeriesとDataFrameという2つの主要なデータ構造があります。これらを使いこなすことで、データの操作や分析を効率的に行うことができます。今回は、PandasのSeriesとDataFrameの作り方を詳しく解説します。
【体験談】私自身、最初にSeriesとDataFrameの違いが分からず、2次元リストをSeriesに渡してエラーになったことがあります。Seriesは1次元、DataFrameは2次元
という違いを意識することが最初のつまずきを防ぐカギだと痛感しました。
1. Pandasのインストール
Pandasがインストールされていない場合は、以下のコマンドを使ってインストールします。
pip install pandas
2. Pandasのインポート
PandasをPythonコード内で使うために、まずインポートします。一般的に、pd
という別名でインポートします。
import pandas as pd
3. PandasのSeriesとは?
PandasのSeriesは、1次元のラベル付きデータ構造です。データを1つの列として扱い、リストやNumPy配列に似ていますが、インデックス(データのラベル)を追加することができ、データの操作がしやすくなります。
▶️ Seriesの公式ドキュメントも参考にしてください:
pandas Series Documentation
3.1 Seriesの作成方法
Seriesは、リストや辞書を使って作成できます。リストや辞書の違いは、リストは順番にデータを並べ、辞書はキーと値をペアで持つ点です。
リストを使ったSeriesの作成
リストからSeriesを作成する例です。リストは単一のデータ列を持っています。
【失敗談】printで出力したときに、インデックス付きの縦並び表示になるのを見て驚きました。リストとは異なる表現形式なので、最初は戸惑いましたが、むしろ見やすいと感じるようになりました。
import pandas as pd
data = [1, 2, 3, 4, 5]
series = pd.Series(data)
print(series)
出力結果:
0 1
1 2
2 3
3 4
4 5
dtype: int64
インデックスを指定したSeriesの作成
インデックスはデータのラベルで、データをより意味づけするのに役立ちます。
index_labels = ['a', 'b', 'c', 'd', 'e']
series_with_index = pd.Series(data, index=index_labels)
print(series_with_index)
出力結果:
a 1
b 2
c 3
d 4
e 5
dtype: int64
辞書からSeriesを作成
辞書はキーと値をペアで持つデータ構造です。これを使って、キーをインデックス、値をデータとしてSeriesを作成できます。
data_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
series_from_dict = pd.Series(data_dict)
print(series_from_dict)
出力結果:
a 1
b 2
c 3
d 4
e 5
dtype: int64
4. PandasのDataFrameとは?
PandasのDataFrameは、2次元のラベル付きデータ構造です。行と列でデータを整理し、ExcelやSQLのテーブルに似た形でデータを扱います。
▶️ DataFrameの公式ドキュメントも参考にしてください:
pandas DataFrame Documentation
4.1 DataFrameの作成方法
DataFrameはリストや辞書を使って作成することができます。ここでは、リストからDataFrameを作成する例を見てみましょう。
リストからDataFrameを作成
リストからDataFrameを作成する場合、リスト内の各要素が行になります。
import pandas as pd
data = [[1, 'Alice', 24],
[2, 'Bob', 27],
[3, 'Charlie', 22],
[4, 'David', 32],
[5, 'Eve', 29]]
df = pd.DataFrame(data, columns=['ID', 'Name', 'Age'])
print(df)
出力結果:
ID Name Age
0 1 Alice 24
1 2 Bob 27
2 3 Charlie 22
3 4 David 32
4 5 Eve 29
辞書からDataFrameを作成
辞書を使うことで、各列のデータをキーとしてDataFrameを作成できます。
data = {'ID': [1, 2, 3, 4, 5],
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Age': [24, 27, 22, 32, 29]}
df = pd.DataFrame(data)
print(df)
出力結果:
ID Name Age
0 1 Alice 24
1 2 Bob 27
2 3 Charlie 22
3 4 David 32
4 5 Eve 29
5. インデックスの設定と変更
DataFrameやSeriesでは、インデックスを設定することで、データの順番やラベルを変更することができます。
# 'ID'列をインデックスに設定
df = df.set_index('ID')
print(df)
出力結果:
Name Age
ID
1 Alice 24
2 Bob 27
3 Charlie 22
4 David 32
5 Eve 29
6. 1次元(Series)と2次元(DataFrame)の違い
以下の図は、SeriesとDataFrameのインデックスとデータの関係を視覚的に示したものです。Seriesは1次元のデータ構造、DataFrameは2次元のデータ構造です。

7. まとめ
今回は、PandasのSeriesとDataFrameの作り方について解説しました。これらはPandasの基本的なデータ構造で、データ分析を行う上で非常に重要な役割を担います。
Seriesは1次元のラベル付きデータ構造、DataFrameは2次元のラベル付きデータ構造です。これらを使いこなせるようになれば、Pandasを使ったデータ操作や分析が格段に楽になります。
【改善策】SeriesとDataFrameの違いを一目で理解できるよう、自分なりに図を書いて整理するようにしました。頭の中で整理できるだけで、後のエラーも激減しました。
次回は、DataFrameを使って、データの表示方法を学んでいきましょう!
コメント