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

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

サマリー
  • 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

【参考】Pythonでのデータ前処理・分析・可視化

当サイトではPythonを用いた「データ前処理手法」「データ分析」「グラフや表を用いた可視化」手法について幅広く解説しております。AI・機械学習にも応用できる内容となっておりますため、興味がある方は併せてご確認下さい。

Pythonを活用したデータ処理・分析手法一覧



【参考】Pythonとは・できること一覧

最後に

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

目次