2018.09.28スポンサーリンクPandasはPythonでデータ解析を行うための機能を持ったライブラリで、数表や時系列データを操作するためのデータ構造を作ったり演算を行うことができます。ここではPandasの基本的な使い方を一気に学んでいきます。Anacondaを使っているなら、Pandasはすでにインストールされているのではないかと思いますが、入っていなければターミナルからcondaコマンドやpipコマンドでインストールしましょう。notebookを利用します。notebookを起動したら、まずはPandasをインポートしましょう。pdNumPyを利用しての計算も後々出てくるので、合わせてインポートします。Pandasは慣例としてpdとして利用します。Series()で1次元のデータを作るまずPandasで1次元のデータを作ってみます。これにはSeries()を使います。リストに入ったデータを利用して次のように書きます。4])s(以降はインポート文は省略します)4つのデータが入っているのがわかりますね。[shift]+[return]キーで実行して、sを表示します。インデックスと対応させてデータが表示されているのがわかります。インデックスを指定して値を表示したり、メソッドを利用して合計を求めたりすることができます。s.sum()12s[1]s.sum()このあたりはNumPyと同じような操作ですから他のメソッドも利用できますね。ちなみにドット(.)を入力した時に[tab]キーを押せば、メソッドの一覧が表示されます。DataFrame()で2次元のデータを作る次は2次元のデータです。こちらの方が利用する機会が多いでしょう。DataFrame()を使って2次元の値を与えることで作成できます。次のように辞書型データを使っても作ることができます。45]})df慣例として変数をdfにすることが多いです。これを実行するとこうなります。このように縦横のマトリクスに対応したデータが表示されます。データのタイプは次のようにして確認できます。Pythondf.dtypes1df.dtypesスポンサーリンクDataFrame()を操作するDataFrame()を使った2次元のデータの作成はわかりましたが、本来のデータは多く、もっと複雑ですので整理などが必要となります。そこでDataFrame()の様々な基本操作の方法をここで一気にみていきましょう。6行4列のデータをrandomを使って作ってみます。4))dfここまではいいのですが、データの項目が一体何なのか、これでは意味を理解することができません。データにラベルをつけるそこで、縦と横の項目にラベルをつけていきます。'D'])dfdate_range()を使って縦の項目にラベルをつけます。ここでは日付を入れました。preriodsにはデータの数を指定します。横の項目にはcolumsにリストでラベルを指定してあげます。実行するとこうなります。縦、横それぞれの項目が表示されたので、データの意味がわかりやすくなりました。head()でデータの先頭、tail()でデータの末尾を表示するデータの先頭行を表示するならdead()を使います。Pythondf.head(1)1df.head(1)ここでは数字の1を入れて操作しましたが、丸括弧()に数字を入れなければ、先頭から5つのデータが表示されます。末尾のデータを表示させるならtail()を使います。Pythondf.tail(3)1df.tail(3)3を入れているので末尾から3つのデータを表示しています。数値を入れなければ5つのデータが表示されます。valuesで縦軸、横軸、中身を表示データの縦軸の表題(インデックス)、横軸の表題(カラム)、データの値をそれぞれ表示させるには次のコードを使います。df.values123df.indexdf.columnsdf.valuesdescribe()で基本統計量を取得するdescribe()を使えば基本統計量を取得できます。行と列の転換、値のソート行と列の転換にはTを、値のソートにはsort_values()を使います。df.sort_values('C')12df.Tdf.sort_values('C')Tで縦横が変換されているのがわかります。ソートはCの項目で小さい順に並び替えられているのがわかります。データのスライスリストと同じように、データの縦方向のインデックスやラベルの値を使って範囲指定してデータをスライスすることができます。class="p">]</span>行、列を指定してデータを参照する行、列を指定してデータを参照するには、loc、ilocを使います。locは行、列のラベルを使います。'B']]ilocは行、列の番号を使います。0:2]不等号で取り出すある条件のデータでゼロより大きい値を取り出してみます。ラベルAのデータがゼロより大きい時のデータ。ゼロより大きい全てのデータ。言葉で書くとわかりずらいので、次のような場合です。0]上側がAで該当する列のデータを抽出、下側は0以下のデータはNaNと表示しています。copy()と列の追加もう一度、dfの内容を確認しておきます。ここで、このデータをコピーして、E列を加えてデータを入れてみたいと思います。'b']df2copy()で複製することができます。この複製をdf2とします。これにE列をしてして値を入れています。E列に値が入っているのがわかります。isin()を使って、値が入ってる列のデータを取り出すことができます。'c'])]新たな1次元データを列データに加えるここで1次元のデータを作ってみます。periods=6))sこのデータsをdfに項目Eとして付け加えるには次のように書きます。sdfshift()でデータをシフトするshift()を使ってデータをズラすことができます。Pythondf.shift(1)1df.shift(1)元の1行目から下にずれているのがわかると思います。concat()で連結する扱いやすいように新しい小さなデータを作ります。2))df2行2列のデータを作ります。このデータを2つ連結するには、concat()を使います。df])行を増やす形で連結されているのがわかります。append()で追加するまた新たにデータを作ります。'D'])dfここにデータの1行目を参照して、新しい一次元データを作ってsに代入します。df.iloc[0]sこのデータsを、元のdfにappend()で追加します。Pythondf.append(s)1df.append(s)最後の行にsのデータが追加されているのがわかります。行番号の0が2つあってちょっとデータとして扱うにはおかしくなる場合がありますよね。そこで次のように、ignore_index=Trueとして書き直すことで、新しく追加されるデータに新しい行番号が割り振られます。ignore_index=True)行番号が整えられました。再度、作業用に新しいデータを作ります。bがそれぞれ2つ入っています。groupby()を使えば、そ子に含まれる同じ要素をグループ化することができます。次のコードは要素をまとめてその要素ごとに合計します。bそれぞれの値がまとめられてsum()で合計されているのがわかります。スポンサーリンク最後にPandasの基本的な操作を簡単ですが一気に見てきました。途中、NumPyを途中で使うことがあるように、どちらもデータの扱いには必要なライブラリです。これ以外にも様々な機能があり、データを外部から読み込むライブラリもあとで扱います。これで終わりではありませんので、さらに詳しいところは別のところでじっくりやろうと思います。【Python】CSVファイルの読み込み、書き込みPythonでのファイルの作成、操作について、ここではデータベースのデータの受け渡しなどでよく利用されるCSVファイルの作成と読み込み書き込みの操作をしてみます。リスト型から作るものと、フィールド名を使った辞書型から作るものとがあります。はじめの一歩Matplotlibは、Pythonを使ってデータを視覚化するためのライブラリです。いろんなグラフに表示することができます。データのグラフの描画の方法について扱います。【Python】osモジュールとファイルシステムの操作MacやUNIXコマンドでターミナルを駆使してファイルやフォルダを作成したり削除したりする操作することができますが、Pythonでもそのような操作をosモジュールなどを使えば、様々なことが可能となっています。polylinesPythonにOpenCVをインポートして画像に線や図を描画する方法学びます。多角形のpolylines()を扱います。【Python】tkinterの使い方入門。計算機GUIアプリの作成に挑戦!Pythonのtkinterを扱います。GUIツールキットをPythonで使うためのインタフェースです。ここでは試しに簡単な計算機GUIアプリを作ってみます。【Python】tempfileモジュールの使い方Pythonの標準ライブラリtempfileモジュールの使い方を見て行きます。実際のファイルやディレクトリの作業ではなくTemporaryFile()、TemporaryDirectory()などを使って一時的に作成し終了後に削除されます。notebookの基本的な使い方。notebookの基本的な使い方。f-stringsスポンサーリンクタイトルとURLをコピーしました。