[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')
要素の追加と削除は append とdrop メソッドを使う。
# 要素の追加
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"を気に入って頂けましたら、是非サポートをお願いいたします!