Python

pandasを使ったDataFrameの基本的なことまとめ

こんにちは。shiro(@k_shiro420)です

pandasのDataFrameがめちゃくちゃ便利だったのでまとめて紹介します

参考にしているのはこの本です

created by Rinker
¥3,024
(2018/08/18 00:21:01時点 Amazon調べ-詳細)

DataFrameを作る

Pandasはデータ集計やデータ解析のためによく使われるPythonモジュールの1つです

pandasを操作することで、まとまったデータを作成したり、その変種や解析まで行うことができます。

このデータのまとまりを「DataFrame」オブジェクトと呼びます。

まずは簡単なデータをもとにDataFrameを作成しました。作成にはnumpyを使用します

名前、強化、点数の3つのリスト(arr1, arr2, arr3)を作成しました

点数にはrandint関数を使用して1〜100のランダムな値が付けられています

import pandas as pd

data = list(zip(arr1, arr2, arr3))
#DataFrameの作成
df = pd.DataFrame(data=data, columns=['名前', '教科', '点数'])
#DataFrameの情報出力
df.info()
print()
#スライス出力
df[:5]

そしてこれを実行すると次のような結果が出力されます

new_data = [('吉田','国語','78',59),
('吉田','数学','74',69),
('吉田','英語','72',69),
('吉田','理科','77',60),
('吉田','社会','79',79)]
new_df = pd.DataFrame(data=new_data, columns=['指名','教科', '中間', '期末'])
df2 = df.append(new_df, ignore_index=True)
df2[45:]

新しいリストを作ってappendメソッドの引数として呼び出すとDataFrameに追加することができます

これでインデックスの50番目以降に5教科分の吉田のデータが追加されたことが分かります

他にもDataFrameの編集に使えるメソッドはたくさんありますがキリがないのでこの辺にしておきます

Dataを扱う

DataFrameにあるデータを効率よく取得することで様々な作業に応用できます

print(def2['中間'].unique())

このコードでは中間テストの重複のない点数だけを取得しています

df.sort_values(['期末'], ascending=False)[:10]

これで期末の点数上位10をソートしています

このように、Dataframeにあるデータの特定の部分を抽出したり、ソートしたり、することもできれば、当然その最大値やグループの平均点などの計算もすることができます

同時に、スプレッドシートやエクセルとの連携(読み込み、保存)などもできるので非常に便利なツールです

まとめ

今回は極簡単にpandasでできることを紹介しました

より詳しく知りたいという方は今回のまとめで参考にした書籍を参考にしてください

created by Rinker
¥3,024
(2018/08/18 00:21:02時点 Amazon調べ-詳細)

また次の本も非常に評判がよいので(僕は買ってないですが)こちらを選んでも良いと思います

created by Rinker
¥3,564
(2018/08/18 00:21:02時点 Amazon調べ-詳細)

どちらもjupyterというツールを使いながらPythonのデータ分析の基礎を勉強できるようになっているので是非参考にしてください