Pandas1 Series1
Pandasの第1回目となります。
Aidemyさんの講座を受講しながらアウトプットのためにブログを更新しております。
AidemyさんHP → https:// aidemy.net
【Pandas:説明】
Pandasとは、データ解析機能を提供するPythonのデータ解析ライブラリ。
主要なコードはPythonまたはC言語で書かれており、Pythonだけでデータ分析を行うのと比較して、非常に高速に処理を行うことができます。
具体的に行えることとしまして、
CSV ファイルの読み書き
統計量の算出
並べ替え
データの選択
条件指定による選択
欠損値の除去 / 補間
ndarray とデータフレームを相互に変換
グラフの描画
等ができます。
Pandasには Seriesと DataFrameという2種類のデータ構造が存在します。
Seriesは1次元の配列で、
DataFrameは、横方向のデータを行、縦方向のデータを列と呼びます。
各行、各列に対してそれぞれラベルが付けられており、
行ラベルは インデックス、列ラベルは カラムと言います。
DataFrameの行または列として捉えることができます。
【Series・DataFrame】
それぞれのデータ構造についての確認をします。
例文:Series
import pandas as pd
fruits = {"apple": 3, "grape": 2}
print(pd.Series(fruits))
>>> 出力結果
apple 3
grape 2
dtype: int64
例文:DataFrame
import pandas as pd
data = {"fruits": ["apple", "orange", "banana", "strawberry", "kiwifruit"],
"year": [2001, 2002, 2001, 2008, 2006],
"time": [1, 4, 5, 6, 3]} #{カラム:[インデックス,インデックス,インデックス]
df = pd.DataFrame(data)
print(df)
>>> 出力結果
fruits time year
0 apple 1 2001
1 orange 4 2002
2 banana 5 2001
3 strawberry 6 2008
4 kiwifruit 3 2006
DataFrameはcolumnsを指定しない場合、keyで昇順にソートされます。
ソート順を指定する場合は以下のように第二引数にcolumns=[リスト] を指定します。
import pandas as pd
df = pd.DataFrame(data, columns=["year", "time", "fruits"]) #ソート順を指定
print(df)
>>> 出力結果
year time fruits #y→t→f 上記で指定
0 2001 1 apple
1 2002 4 orange
2 2001 5 banana
3 2008 6 strawberry
4 2006 3 kiwifruit
例文:確認用
# pandasをpdとしてimport
import pandas as pd
# Series用のラベル作成(インデックス)
index = ["apple", "orange", "banana", "strawberry", "kiwifruit"]
# Series用のデータ値の代入
data = [10, 5, 8, 12, 3]
# Series作成
series = pd.Series(data, index=index)
# 辞書型を用いてDataFrame用のデータの作成
data = {"fruits": ["apple", "orange", "banana", "strawberry", "kiwifruit"],
"year": [2001, 2002, 2001, 2008, 2006],
"time": [1, 4, 5, 6, 3]}
# DataFrame作成
df = pd.DataFrame(data)
print("Seriesデータ")
print(series)
print("\n")
print("DataFrameデータ")
print(df)
>>> 出力結果
Seriesデータ
apple 10
orange 5
banana 8
strawberry 12
kiwifruit 3
dtype: int64
DataFrameデータ
fruits year time
0 apple 2001 1
1 orange 2002 4
2 banana 2001 5
3 strawberry 2008 6
4 kiwifruit 2006 3
【Series参照】
Seriesの要素を参照するとき、インデックス番号を指定する方法とインデックス値を指定する方法があります。
インデックス番号:リストのスライス表記(例series[:3])のように任意の範囲を取り出すことができます。
import pandas as pd
fruits = {"banana": 3, "orange": 4, "grape": 1, "peach": 5}
series = pd.Series(fruits)
print(series[0:2]) #1~2までのデータを出力
>>> 出力結果
banana 3
orange 4
インデックス値 :求める要素のインデックス値を一つのリストにまとめて参照します。リストではなく1つの整数値を指定した場合は、その位置に該当するデータのみを取り出すことができます。
import pandas as pd
fruits = {"banana": 3, "orange": 4, "grape": 1, "peach": 5}
series = pd.Series(fruits)
print(series[["orange", "peach"]]) #データを指定している
>>> 出力結果
orange 4
peach 5
以下のコードではインデックス番号を指定し、ひとつのデータを取り出します。
import pandas as pd
fruits = {"banana": 3, "orange": 4, "grape": 1, "peach": 5}
series = pd.Series(fruits)
print(series[3])
>>> 出力結果
5
【データ、インデックスを取り出す】
作成したSeriesのデータ値のみ、またはインデックスのみを取り出す方法があります。
Series型の変数がseriesの場合、series.valuesと指定するとデータの値
import pandas as pd
index = ["soccer", "tennis", "basketball"]
data = [11, 4, 10]
series = pd.Series(data, index=index)
print(series.values)
>>> 出力結果
[11 4 10] #print(series.values)は、データ値が出力される
series.indexと指定するとインデックスを参照できます。
import pandas as pd
index = ["soccer", "tennis", "basketball"]
data = [11, 4, 10]
series = pd.Series(data, index=index)
print(series.index)
>>> 出力結果
Index(['soccer', 'tennis', 'basketball'], dtype='object') #インデックスが出力される
今回はこの辺にさせていただきます。
お読みいただきましてありがとうございました。