Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonでデータフレームをPickleファイルにエクスポートし、読み込む方法

Pythonでは、Pandasのto_pickle()メソッドを使うことで、データフレームを簡単にPickleファイル形式で保存できます。また、read_pickle()メソッドを使用すれば、保存したファイルから元のデータフレームを読み込むことができます。

例えば、あるデータフレームをPickleファイルにエクスポートし、その後ファイルから内容を読み取ると、結果は以下のようになります。

Export to pickle file:
Read contents from pickle file:
  Fruits    City
0 Apple    Shimla
1 Orange   Sydney
2 Mango    Lucknow
3 Kiwi    Wellington

解決策

この問題を解決するには、以下の手順に従います。

  • データフレームを定義します。

  • データフレームをPickle形式でエクスポートし、「pandas.pickle」という名前で保存します。

df.to_pickle('pandas.pickle')
  • 「pandas.pickle」ファイルの内容を読み取り、result変数に格納します。

result = pd.read_pickle('pandas.pickle')

Pickle形式とは

Pickleは、Pythonオブジェクトをバイナリ形式で直列化(シリアライズ)するための標準モジュールです。データフレームをPickle形式で保存すると、CSVなどのテキスト形式と比べて高速に読み書きでき、データ型やインデックスなどの情報もそのまま保持されるというメリットがあります。

実装例

理解を深めるために、以下の実装例を見てみましょう。

import pandas as pd
df = pd.DataFrame({'Fruits': ["Apple","Orange","Mango","Kiwi"],
                      'City' : ["Shimla","Sydney","Lucknow","Wellington"]
                   })
print("Export to pickle file:")
df.to_pickle('pandas.pickle')
print("Read contents from pickle file:")
result = pd.read_pickle('pandas.pickle')
print(result)

出力

Export to pickle file:
Read contents from pickle file:
  Fruits    City
0 Apple    Shimla
1 Orange   Sydney
2 Mango    Lucknow
3 Kiwi    Wellington

注意点

Pickleファイルは、信頼できるソースからのみ読み込むようにしてください。悪意のあるPickleファイルを読み込むと、任意のコードが実行される可能性があるため、セキュリティ上のリスクに十分注意しましょう。

  1. PythonでDataFrameから成績が「A」の生徒の名前を抽出する方法

    pandasのDataFrameから特定の条件に一致する行だけを取り出すことは、データ分析における最も基本的な操作の一つです。この記事では、「Id」「Name」「Grade」の3列を持つ生徒データのDataFrameから、成績(Grade)が「A」の生徒の名前のみを抽出するプログラムを、ブールインデックス参照を使って実装する方法を解説します。 入力データと期待される出力 まず、以下のようなDataFrameを想定します。 Id Name Grade 0 1 stud1 A 1 2 stud2 B 2 3 stud3 C 3 4 stud

  2. 【Python】PandasのDataFrameから最年少の従業員IDと給与を抽出する方法

    はじめにPandasのDataFrameを扱う際、「最も年齢が若い従業員のIDと給与を知りたい」というケースはよくあります。本記事では、条件抽出の基本であるブールインデックス参照を使って、この問題をシンプルかつ効率的に解決する方法を、サンプルコードと実行結果付きで解説します。入力データ以下のような従業員情報を持つDataFrameを想定します。 Id Age Salary 0 1 27 40000 1 2 22 25000 2 3 25 40000 3 4 23 35000 4 5 24 30000 5 6 32