【データ処理】Pandasのデータ構造: SeriesとDataFrameを理解する

データ処理

このブログ記事は
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要素を持つ

テーブル形式データ構造なんですね!

参考文献

Amazon.co.jp
Bitly
タイトルとURLをコピーしました