【Python入門】Pandas・Seriesの基本操作一覧

こんにちは、Kosei(@kay_diacc2)です!

PythonライブラリであるPandas・Seriesの基本操作を解説しています。プログラム構築時に辞書代わりとして活用していただければと思います。

目次

Pandasとは|Series・DataFrame

Pandasは、データサイエンス・データ分析および機械学習タスクを実行する上で最も広く使用されているオープンソースのPythonパッケージです。Pandasは「Series」と「DataFrame」という代表的なデータ構造を有するのが特徴です。

Series 1次元のラベル付き配列
DataFrame ラベル付きの軸(行・列)を有する表形式の二次元データ構造

データの準備

実際にPandas Seriesの記述方法を見ていきましょう。黒枠にコード、グレー枠にコードの出力結果を示してます。

下記のライブラリは事前に読み込んだ後に、各々の操作を実行しましょう。

import pandas
from pandas import Series

Pandas・Series操作:属性情報の取得

値を出力

sr = Series([1,3,5,7])
sr.values

# 出力結果
# array([1, 3, 5, 7])

indexを出力

sr = Series([1,3,5,7])
sr.index

# 出力結果
# RangeIndex(start=0, stop=4, step=1)

arrayを出力

sr =Series([1,3,5,7])
sr.array

# 出力結果
# <PandasArray>
# [1, 3, 5, 7]
# Length: 4, dtype: int64

dtypeを出力

sr =Series([1,3,5,7])
sr.dtype

# 出力結果
# dtype('int64')

行数・列数を取得

sr = Series([1,3,5,7])
sr.shape

# 出力結果
# (4,)

バイト数を取得

sr = Series([1,3,5,7])
sr.nbytes

# 出力結果
# 32

Pandas・Series操作:添字の操作

添字を指定し値取得

sr = Series([1,3,5,7])
sr[1]

# 出力結果
# 3

添字を指定し値の範囲取得

sr = Series([1,3,5,7])
sr[1:3]

# 出力結果
# 1    3
# 2    5
# dtype: int64

値を代入

sr = Series([1,3,5,7])
sr[0] = 9999

# 出力結果
# 0    9999
# 1       3
# 2       5
# 3       7
# dtype: int64

条件式でフィルタして値抽出

sr = Series([1,3,5,7])
sr[sr>4]

# 出力結果
# 2    5
# 3    7
# dtype: int64

Pandas・Series操作:Indexの操作

Indexを作成

sr = Series([1,3,5,7],index=["A","B","C","D"])

# 出力結果
# A    1
# B    3
# C    5
# D    7
# dtype: int64

Indexを指定し値を出力

sr = Series([1,3,5,7],index=["A","B","C","D"])
sr["C"]

# 出力結果
# 5

Indexに名前をつける

sr = Series([1,3,5,7],index=["A","B","C","D"])
sr.index.name = 'あいうえお'

# 出力結果
# あいうえお
# A    1
# B    3
# C    5
# D    7
# dtype: int64

Seriesに名前をつける

sr = Series([1,3,5,7],index=["A","B","C","D"])
sr.name = 'あいうえお'

# 出力結果
# A    1
# B    3
# C    5
# D    7
# Name: あいうえお, dtype: int64

階層構造があるIndexを作成

sr = Series([1,3,5,7],index=[[1,1,2,2],["A","B","C","D"]])

# 出力結果
# 1  A    1
# 1  B    3
# 2  C    5
# 2  D    7
# dtype: int64

値を並び替え

sr = Series([3,1,5,4])

# 昇順の場合:ascending = True
# 降順の場合:ascending = False
sr.sort_values(ascending=False)

# 出力結果
# 2    5
# 3    4
# 0    3
# 1    1
# dtype: int64

indexで並び替え

sr = Series([3,1,5,4])

# 昇順の場合:ascending = True
# 降順の場合:ascending = False
sr.sort_index(ascending=True)

# 出力結果
# 0    3
# 1    1
# 2    5
# 3    4
# dtype: int64

値の大きさでランク付け

sr = Series([100,50,30,80])
sr.rank()

# 出力結果
# 0    4.0
# 1    2.0
# 2    1.0
# 3    3.0
# dtype: float64

Pandas・Series操作:演算

Series同士を足し合わせ

sr1 = Series([1,3,5,7])
sr2 = Series([8,6,4,2])
sr1 + sr2

# 出力結果
# 0    9
# 1    9
# 2    9
# 3    9
# dtype: int64

Pandas・Series操作:データの追加・削除

値を除外

sr = Series([3,1,5,4])
sr.pop(0)

# 出力結果
# 1    1
# 2    5
# 3    4
# dtype: int64

値を追加

sr1 = Series([3,1,5,4])
sr2 = Series([9])

sr1.append(sr2,ignore_index=True)

# 出力結果
# 0    3
# 1    1
# 2    5
# 3    4
# 4    9
# dtype: int64

Pandas・Series操作:変換操作

Seriesから辞書型に変換

sr = Series([1,3,5,7],index=["A","B","C","D"])
sr.to_dict()

# 出力結果
# {'A': 1, 'B': 3, 'C': 5, 'D': 7}

辞書型からにSeries変換

dic = {'A': 1, 'B': 3, 'C': 5, 'D': 7}
Series(dic)

# 出力結果
# A    1
# B    3
# C    5
# D    7
# dtype: int64

SeriesからListに変換

sr = Series([1,3,5,7])
Series.to_list(sr)

# 出力結果
# [1, 3, 5, 7]

Seriesからnumpyに変換

sr = Series([1,3,5,7])
Series.to_numpy(sr)

# 出力結果
# array([1, 3, 5, 7])

SeriesからDataFrameに変換

sr = Series([1,3,5,7])
pandas.DataFrame(sr,columns=["SeriesName"])

複数のSeriesをDataFrameに変換

sr1 = Series([1,3,5,7])
sr2 = Series([2,4,6,8])

# 列方向に連結する場合:axis=1
# 行方向に連結する場合:axis=0
pd.concat([sr1,sr2],axis=1)

Seriesを複製

sr1 = Series([1,3,5,7])
sr2 = sr1.copy()
print(sr2)

# 出力結果
# 0    1
# 1    3
# 2    5
# 3    7
# dtype: int64

最後に

この記事が気に入ったら
フォローしてね!

本記事をシェア!
URLをコピーする
URLをコピーしました!
目次
閉じる