たのしい工学

プログラミングを学んで、モノをつくりたいひと、効率的に仕事をしたい人のための硬派なブログになりました

【pythonスクレイピング】pandasの基礎

   

pandasとは?

データ解析を支援する機能を提供するpythonのオープンソースライブラリです。

この記事は

・pandasの初心者
・pythonはひととおり学んで、データ解析をやりたい人

に向けに書いてます。

pandasには
・DataFrame
・Series
があります。

DataFrameの特徴

・データを行列にして保存
・「値」「インデックス」「列」の二次元データで構成
・要素には文字列を入れることも可能

Seriesの特徴

・一次元データで「インデックス」をもつ
・要素には文字列を入れることも可能

データを行列として扱う

行は「横」のデータ
列は「縦」のデータ

pandasをつかってみる

事前に環境構築をしましょう。この先もいろいろなデータをあつかっていきたいなら、Anacondaをインストールすることをおすすめします。anacondaのインストール方法はここではふれませんので、こちらなどを参考にしてみてください。Anaconda で Python 環境をインストールする

anacondaターミナルでipythonを立ち上げる

https://gyazo.com/84986000a5ed50e8eb4fafce7da82715

https://gyazo.com/af8b3df0bad7c814a0d064eaeeb27073

numpyとpandasをインポートします。

numpyを利用して、配列データをつくります。
今、身長と体重をあらわすbodyというデータがあるとします。

https://gyazo.com/0274afc41202a04f5c9112fe5db69f31

このデータをpandasのDataFrameに当てはめてみましょう。

https://gyazo.com/204d0e3921c0a47bdf31ff479d7499cd

一般的に、dfという変数を用意して、そこにpandasのデータを定義していきます。pd.DataFrame(データ)で先ほど取得した身長と体重のデータをpandasのDataFrame形式に変換できます。

データが定義できたら、dfコマンドを打ち込みましょう。
すると、DataFrameが定義する形式である行と列のデータ形式に変換されていることがわかります。

2行4列の行列データが取得できました。

0行目が身長。1行目が体重を表します。

これではなんのデータを表しているかわかりにくいですよね。データを加工していきます。

https://gyazo.com/6e802dc239a5b516871d519fdb62706e

df.columnsでpandasの列(columns)データにアクセスできます。
そこに名前データを入れてやると、列データに名前が反映されるようになりました。

では今度はおなじ要領で行データも変更しましょう。

https://gyazo.com/0c791a797d1328464ea7ae313cd6e1ab

df.lowsとやりたいところですが、こちらはdf.indexで行データにアクセスできます。

列データの変更をしてみましょう。

taro君をtoshi君に変更してみます。

https://gyazo.com/7dcafd5eceff906f6b101733d1a85311

名前の変更なので、df.rename()とします。()内には、変更したい列なのでcolumns={'変更前の名前':'変更後の名前'}を入力すれば、変更できます。

今回はここまでです。

もっとpandasについて学んでみたいひとは、
世界最大級のオンライン学習サイトUdemyから「Data Analysis in Python with Pandas」を探してみてください。

ではでは!

 - プログラミング系, python