たなブログ 教養を高めて生涯資産を増やすブログ(`・ω・´)

【Python Coding】pandasを使ってデータサイズを確認&変換

PR Pythonを学ぶ

こんにちは、TAKです。

今回は、pythonのpandasを使って、「データサイズ(KBやMB等)を確認する方法」と「データサイズの単位を変換する方法について解説していきたいと思います。

データ容量の単位に関する基本的知識を前提としているので、「GB(ギガバイト)やMB(メガバイト)が今一つわからない」という方は、以下の記事を先に確認しておいてください。

【こんな人に読んで欲しい記事です】

● pythonの「pandas」を使って、読み込んだファイルのデータサイズを確認したい方

● pythonの「pandas」を使って、データサイズの変換(KB→MB)が出来るようになりたい方

必要に応じて「データサイズ」を確認したり、「単位変換」が出来れば、「pandasで読み込んだファイルがデカ過ぎるから、まず最初に圧縮しておこうかな」といった判断も出来るようになります。

より良いモデル構築をしてデータ分析をしたい方は、参考にしてみてください。

【pandas】読み込んだファイルの「データサイズ」を確認する方法

必要ライブラリのインポート(共通)

今回はpandasだけでOKなので、上記のようにインポートしておいてください。
pandasは、ファイルの読み込み読み込んだデータフレームのデータサイズ確認に使います。

CSVファイルの読込(共通)

手元にあるcsvファイルを適当に選んでファイル読込を実行してみてください。
僕はKaggleコンペで持っていたデータサイズの大きいcsvファイルを使います。
csvファイルを読み込む場合は、pandasの`read_csv()`を使ってファイル指定すればOKです。

データのshapeを見てわかる通り、約680万行あるかなり膨大なデータを使います。

このデータを用いて、データサイズの確認方法と、データ容量単位の変換を見ていきます。

ファイル全体の「データサイズ」容量を確認

読み込んだデータフレームのデータサイズ全体を簡単に確認するならば、`df.info()`を使えばOKです。
今回はデータフレームをdataとして読み込んでいるので、data.info()となっています。

出力結果の赤枠部分を見てもらえばわかる通り、今回のデータは約208.8MBとcsvファイルにしては相当大きいデータサイズになっていることが確認出来ますね。

もし読み込んだデータサイズの概観を知りたいのであればこの方法だけでも十分ですが、データサイズ情報だけを知りたいのであれば、`df.memory_usage().sum()`を用いる必要があります。

この方法を使うと、データサイズは「Byte」単位で出力され、今回は約2.1億Byteあることがわかります。

すると、かなり大きな数値が出力されましたが、これはByte(バイト)単位でのデータサイズを示しています。
先ほどは自動的にMB単位で表示してくれていましたが、この方法だとByte単位表示になります。

この後、データサイズの単位を変換する方法を紹介していきますので、ここではデータサイズの確認方法をしっかりと抑えておいてください。

各カラムごとの「データサイズ」容量を確認

合わせてもう一つのデータサイズの確認方法を紹介しておきます。
先ほどは、読み込んだデータフレームの合計データサイズを出力しましたが、各カラムごとにデータサイズを確認することも可能です。それには、`df.memory_usage()`を使えばOKです。

先ほどは最後に`.sum()`を加えていましたが、それを外せばいいだけです。

今回のデータが持つ特徴量はすべて同じデータサイズとなっていることがわかります。
データサイズが特に大きい数値型のカラムについてはデータ削減の余地があるので、このような方法でデータ構造の全体像を把握しておくことはとても重要になります。

ここまでが「データサイズの確認方法」となるので、次からは単位の変換方法について見ていきます。

【pandas】データ単位を変換する方法(ByteからMBへ)

「データ単位」変換のイメージ

では実際に、Byte単位で表示されていたデータサイズを変換していきましょう。

と言っても、基本を抑えている方なら簡単に出来ると思います。難しくないです。
今回僕が読み込んだデータサイズを「Byte」から「KB・MB・GB」に変換する方法の要領は以下となります。

データ単位の変換のポイントは「1024倍」でしたね。それを使えばいいだけです。

この方法でデータサイズに適した単位表示をしてあげればOKです。
ただこれだと汎用性が低いので、以下では自作関数を使った方法を紹介しておきます。興味のある方だけ参考にしてみてください。

自作関数を利用した変換(全体)

自作関数なので、どのように作ってもいいかと思いますが、僕であれば以下のように作ります。

データサイズを「MB(メガバイト)」「GB(ギガバイト)」に変換するための自作関数

読み込んだデータフレームと単位を引数に指定することで、単位変換をしてくれる関数です。
今回は「MB」「GB」を指定出来るようにしていますが、通常のファイル容量であれば、「GB」に代えて「KB」を指定してあげてもいいかと思います。

MB表示で「208.8MB」となっていますが、最初にinfoで確認したデータサイズと一致していることも確認しておいてください。

自作関数を利用した変換(各カラム)

今度は、各カラムごとのデータサイズを「Byte」単位表示ではなく、「MB」単位表示にする自作関数です。

各カラムごとのデータサイズを「MB」表示する自作関数

今回は、対象のデータフレームに加えて、サイズ変換したいカラムをリストで関数に与えています。
「MB」単位での表示をした結果が、赤枠部分で確認出来ますね。合計データサイズがこちらも「208.8MB」となっており、最初の確認結果と相違ないこともわかります。

さいごに

今回は、pythonのpandasを使って「データサイズの確認方法」と「データ単位の変換方法」について見てきました。

基本がわかっていればさほど難しくないので、手元にあるcsvファイルを使って練習してみてください。

今回の内容がわかれば、読み込んだデータフレームの容量を圧縮する時にも役に立つので、具体的な活用方法を知りたい方は以下の記事も参考にしてみてください。

またね~