こんにちは、Kosei(@kay_diacc2)です!
目次
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
最後に

お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら