見出し画像

[Python] Pandasの基礎 (Series)

Pandas も Numpyと同じようなデータの集合体を処理するライブラリです。
Numpyは行列を扱い、科学計算に特化してますが、Pandasではデータベースを扱い、数値以外にも文字列データを扱うことが可能です。

早速 Pandasを使って データベースを扱ってみたいと思います。

Series というデータ構造では 1次元配列のようにデータを扱うことができます。先ずは pd.Series の使い方から。

# pandas を pd として import
import pandas as pd

# 辞書型のリストを作成
fruits = {"banana":3, "orange": 2}

# pd.Seriesに渡す
print(pd.Series(fruits)) 

# 実行結果
banana    3
orange    2
dtype: int64 #64bitのサイズを持つ整数


# data と index を用意して、pd.Series(data, index=index)で渡すことが出来る
index = ["apple", "orange", "banana", "strawberry", "kiwifruit"]
data = [10, 5 , 8, 12, 3]
series = pd.Series(data, index=index)

print(series)
print("-----------------")
print(series[0:2])

# 実行結果
apple         10
orange         5
banana         8
strawberry    12
kiwifruit      3
dtype: int64
-----------------
apple     10
orange     5
dtype: int64

Seriesデータから、Dataを参照する series.value と Indexを参照する series.index がある。

# series.value
# series.index

import pandas as pd

index = ["apple", "orange", "banana", "strawberry", "kiwifruit"]
data = [10, 5 , 8, 12, 3]
series = pd.Series(data, index=index)

series_values = series.values
series_index = series.index
print(series_values)
print(series_index)

# 実行結果
[10  5  8 12  3]
Index(['apple', 'orange', 'banana', 'strawberry', 'kiwifruit'], dtype='object')

要素の追加と削除は appenddrop メソッドを使う。

# 要素の追加
pineapple = pd.Series([12], index=["pineapple"])

series = series.append(pineapple)
print(series)

# 実行結果

apple         10
orange         5
banana         8
strawberry    12
kiwifruit      3
pineapple     12 ## appended
dtype: int64


#要素の削除
series = series.drop("strawberry")
print(series)

# 実行結果

apple        10
orange        5
banana        8
kiwifruit     3
pineapple    12
dtype: int64

bool型シーケンスで、フィルタリングも可能

#filtering

condition = [True, False, False, False, True]
print(series[condition])

# 実行結果 "True" だけ 抽出
apple        10
pineapple    12
dtype: int64

Series要素のうち、Data値が 5以上、10未満の要素を含むSeries

#値が5以上10未満のものを取得
print(series [series >=5][series < 10])

# 実行結果
orange    5
banana    8
dtype: int64

Sortも可能

# value順にソート データの順番
item3 = series.sort_values()

# index順にソート (アルファベット順)
item4 = series.sort_index()

print(item3)
print("------------------")
print(item4)

# 実行結果

kiwifruit     3
orange        5
banana        8
apple        10
pineapple    12
dtype: int64
------------------
apple        10
banana        8
kiwifruit     3
orange        5
pineapple    12
dtype: int64

こんな感じでデータを1次元で扱えました。次回は DataFrame構造にtryしてみます!

今回の"note"を気に入って頂けましたら、是非サポートをお願いいたします!