Python可視化学習1週目



Pandasとは?


データ分析、エンジニア、科学などの仕事を希望する多くの人がPythonの勉強を始めたとき、まず勉強しなければならないのはPandasだと思います.
データ分析プログラミング言語Rに基づいて作成され、Pythonがデータを処理する最も簡単なツールです.
私はPythonでデータを処理する前に、Rを使って、授業でRを使って、それからPandasを勉強して、認知DataFrameの概念から始めて、理解しやすいようです.
「Pandasはステロイドを注射するアクセル」であり、Rで使用されているDataFrameまたはTibbleよりも操作が容易なのか、学習と理解が必要である.
まず,Pandasの代表的なデータ構造はDataFrameSeriesである.
import pandas as pd
df = pd.DataFrame(....)
series = pd.Series(....)
DataFrameは、1つまたは複数のcolumnおよび1つまたは複数のrowからなり、その形状は既知のマトリクスと同じである.Series既存のlistまたはdict形式のデータをSeriesとして作成できます.dictのデータ型と同様に、인덱스および데이터は1対1の対応形態である.DataFrameは、Seriesの複数からなる행렬matrixと理解され、Rにおいて同名のdataframeと考えられる.rでは、cbind()またはrbind()関数を使用してマトリクスを作成し、c()を使用して配列を作成し、データを生成します.frame()またはtibble()関数として作成できます.(tibbleはtibbleライブラリパッケージが必要です)
s1 = [1,2,3,4]
s2 = [5,6,7,8]
s3 = [9,10,11,12]
df = pd.DataFrame([s1,s2,s3],index = ["a","b","c"])

リストを使用して、seriesを使用することなく、上記のシェイプを作成できます.index =は、インデックスに指定したい名前であってもよいし、columnであってもよい.明示的に名前を付ける場合は、例のようにリストに名前を渡すことができますが、データ量が増加すると非常に不便です.データ名を表す重複しないカラムがある場合は、このカラムを使用します.
df = pd.DataFrame([
    ["a",1,2,3],
    ["b",4,5,6],
    ["c",7,8,9],
    ["d",10,11,12]]
)
df = pd.pivottable

上記の例に示すように、pivottableを使用して既存のカラムをインデックスに変換することができる.EXCELに精通している場合は、データ・ピボット・テーブルに精通している可能性があります.データ・ピボット・テーブル関数については、インデックスの変更方法のみを次に詳しく説明します.

データしょりきそ

Rの処理には多くの関数が使用されている.head()tail()ですデフォルトでは、行列の最初の5つまたは後の5つのデータが表示されます.
この2つの関数もpandaに存在する.
df.head()でdfの5つの親データを表示できます.私が作成したdfには4つのデータがあるので、5つ未満のパラメータを指定して実行します.
df.head(2)
df.tail(3)

実行結果.
tailは、インデックスの末尾を推定するためにも使用できます.
簡単にデータを見てみましたが、データの順序が乱れていて表示しにくい場合は、sort_values()sort_index()関数を使用してソートできます.sort_values()の場合は、標準列のソートを指定できます.列に重複値がある場合は、n番目の標準列まで1つ以上の標準列を指定できます.
パラメータとしてby = に基づく列を渡してもよいし、昇順および降順ソートをascending = として指定してもよい.以前に作成したdfは昇順であるため,降順で並べ替えてみた.
df.sort_values(by=1,ascending=False)

上図のように、1列降順に並べます.

列の削除


データの読み取り、ソート、レポート時に、データに不要なカラムが存在する場合があります.この場合、delおよびdropを使用することができる.
del df[3]
df.drop(labels=2,axis=1)
#labels를 생략해도 가능

スライド


dropのパラメータaxisは軸を表すパラメータであり,0は横方向,1は縦方向である.つまり、データを削除するか、カラムを削除するかを決めることができます.
列を削除しましたが、今回は不要なデータがあったり、測定値があったりするので削除したいと思います.この場合、データを削除すると元のデータが失われ、使用するデータのインデックスのみを選択して新しい変数に格納できます.ここではインデックススライドを使います.locilocの2つに分けられ、locは名称、ilocは数字で分かりやすいです.
このほか、最も基本的なインデックス方式offset indexもあります.
最も基本的なPython文法の一つで、ほとんどの資料型で使われています.

offset index

df[0:3]
df[0::2]
df[0:3]は、1番目のインデックスから2番目のインデックスに出力されるデータを示し、df[0::2]は、2つのインデックスを最初から最後まで移動して出力するdata[start:end:n]と考えるのは簡単です.開始、終了、移動間隔.
もちろん、移動間隔のdefault値は1であり、1つしか書かれていない場合は、1つのデータが出力されます.
最初から最後までではなく、真ん中からn番目までもちろん可能です.-も使用できます.
df[-1:]
df[:-1]
上の2つのコードの結果は同じですか?まったく異なる結果を出力します.

左はdf[-1:]、右はdf[:-1]です.
開始時に-1を指定すると、0から1を除外します.
末尾に-1が与えられると、一番後ろから1つ減算されることを示します.

loc


locは先ほど述べた名称でスライドする場合、DataFrameを表すインデックスや列に基づいて表示することができます.
df.loc["a",3]
先に「a」、「b」、および「c」のインデックスを作成したdfで上記のコードを実行すると、「a」インデックスのデータの3列の値が得られます.現在のカラム名は3ですが、名前が「weight」で、各人の名前がインデックスデータである場合は
df.loc["james","weight"]
このコードを使用できます.
もちろん、ilocの使用を検討する場合は、このクエリー方法(数値の使用)、いくつかのインデックスの使用、またはいくつかのカラムの使用を考慮できます.
順番に考えると、「a」は最初のインデックスです.
df.iloc[0,3]
上記のコードの結果は同じです.さらに、locおよびilocは、offsetindexのように:を使用して複数の連続データを出力することができる.