pandasのread_frameとdescribeでできることまとめ

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つでこんな分析ができるのは便利ですね。

さらに、出力データを見てみると、数値データのみが分析対象になっていますね。自動的に文字列は分析対象から外れるようになっているようです。

以上、最後までお読みいただきありがとうございました。