このブログ記事は
Pythonのライブラリ
pandasのデータ構造の種類の理解と
SeriesとDataFrameのデータ
構造の理解を目的としています。
[PR]※本サイトには、プロモーションが含まれています
Pandasとは
pandasはPythonでモデリングする前
データの前処理(データ操作や分析)
を行う時に便利なPythonのライブラリです
Pandasは、データの構造化や操作、分析、可視化など
さまざまなデータ処理タスクを行うための
ツールを提供しています。
例えばデータの中から
ある条件だけを満たす行を抽出したり
データを結合する操作が出来ます。
Pandasのデータ構造
主に「DataFrame」と「Series」という
2つの主要なデータ構造を提供しています。
DataFrameは行と列の両方を持つ2次元のデータ構造であり
表形式のデータを扱うのに適しています。
Seriesは、1次元のデータ構造であり、単一の列を表します。
Seriesのデータ構造
Seriesは1次元配列のようなオブジェクトです。
Seriesは値とそれに関連付けられたインデックス
というデータラベルの配列が含まれます。
シリーズを作成するコードを書いて値を
確認していきます。
import pandas as pd
# Pandasライブラリを使用してPythonでシリーズ(Series)オブジェクトを作成し、それを変数objに割り当てる
obj = pd.Series([2,3,6,7,10])
print(obj)
インデックスが0からN-1までの連続した整数が
自動で振り分けられ
各インデックスには64ビットの整数型データが
格納されていることが確認できます。
Seriesはフィルタリングや探索数学的な演算も出来ます。
import pandas as pd
# Pandasライブラリを使用してPythonでシリーズ(Series)オブジェクトを作成し、それを変数objに割り当てる
obj = pd.Series([2,3,6,7,10])
# フィルタリングを行い2の倍数のみobj2に格納する
obj2 = obj[obj % 2 == 0]
# 結果を表示
print(obj2)
フィルタリングした後でも
インデックスとデータの結びつきは
保持されるんですね
インデックスをリセットしたい
場合は下記のコードを利用します
# obj2のインデックスをリセット
obj2 = obj2.reset_index(drop=True)
# 結果を表示
print(obj2)
纏めるとSeriesは
インデックスに
関連付けられた値が入る
一元配列のようなデータ構造なんですね!
DataFrameのデータ構造
DataFrameはインデックス
カラム,データの3要素を持つテーブル形式の
データ構造を持ちます
import pandas as pd
# DataFrameを作成するためにディクショナリ形式を修正
dic = { 'ID' : ['100' , '101' , '102','103','104'],
'City' : ['Tokyo','Osaka', 'Kyoto','Hokkaido','Tokyo'],
'Name' : ['Sato','Suzuki','Tanaka','Sasaki','Ohno'],
'Test' : ['Pass','Fail','Pass','Fail','Pass'],
}
# ディクショナリ形式をDataFrameに変換
df = pd.DataFrame(dic)
print(df)
出力は
カラムとインデックスは
纏めて軸と呼ばれる
カラムとインデックスの
オブジェクトの型(クラス)を
下記のコードを先ほどのコードに
追加して確認してみる
print('カラムのオブジェクトの型は' , type(df.columns))
print('インデックスのオブジェクトの型は' , type(df.index))
インデックスカラムは両方とも
Indexオブジェクトの一種であるが
軸の方向が異なっている。
インデックスはaxis=0であり
カラムはaxis=1である。
また、行インデックスと
列インデックスと呼ばれることもある。
DataFrameはインデックス
カラム,データの3要素を持つ
テーブル形式のデータ構造なんですね!