pythonのライブラリpandasを使ってみたい、ということで導入してみました。本記事では、簡単な使い方をまとめていきたいと思います。
環境
- Django: 3.0
- Python: 3.6
- django-pandas: 0.6.1
read_frame()
read_frameを使うことでDBから取得したデータをDataFrameという形式に変換することができます。
from django_pandas.io import read_frame
# DBからデータを取得
data_from_db = Sample.objects.all()
# data_from_dbのカラム名を指定して必要なカラムだけをDataFrame形式で取り出す
df = read_frame(data_from_db, fieldnames=['nearness', 'rent_fee', 'direction', 'age'])
print(df)
すると下記のように出力されます。
django_1 | nearness rent_fee direction age
django_1 | 0 B 68000 西 12
django_1 | 1 B 68000 南 12
django_1 | 2 B 69000 北西 14
django_1 | 3 B 70000 南 14
django_1 | 4 B 72000 南 9
django_1 | .. ... ... ... ...
django_1 | 135 B 145000 南 8
django_1 | 136 B 145000 南東 28
django_1 | 137 A 148000 南東 13
django_1 | 138 A 148000 南 13
django_1 | 139 B 150000 南東 5
ではこのデータを分析してみましょう
describe()
print(df.describe())
django_1 | rent_fee age
django_1 | count 140.000000 140.000000
django_1 | mean 101612.857143 9.557143
django_1 | std 19278.078066 5.550645
django_1 | min 68000.000000 0.000000
django_1 | 25% 86750.000000 6.000000
django_1 | 50% 98750.000000 9.000000
django_1 | 75% 113250.000000 13.000000
django_1 | max 150000.000000 28.000000
describeメソッドでは8つの項目が出力されます。1つ1つ見てみましょう。
- count: データの数
- mean: 各項目の平均値
- std: 各項目の標準偏差
- min: 各項目の最低値
- 25%: パーセンタイルの25%位置のデータ
- 50%: パーセンタイルの50%位置のデータ
- 75%: パーセンタイルの75%位置のデータ
- max: 各項目の最大値
メソッド1つでこんな分析ができるのは便利ですね。
さらに、出力データを見てみると、数値データのみが分析対象になっていますね。自動的に文字列は分析対象から外れるようになっているようです。
以上、最後までお読みいただきありがとうございました。