LoginSignup
0
0

More than 3 years have passed since last update.

Rのような変数保存をPythonでやりたい

Posted at

はじめに

RStudioではEnvironmentの保存ボタンから、形式をそのままに利用した変数を保存することができる。しかし、Pythonの開発環境には、そのような便利な機能が存在しない。

目的

sklearnのdumpを利用して全ての変数を一括保存し、loadを利用して読み込み、通常の変数同様に利用しながら再利用する最低限のプログラムを作成する。

実践

準備

これまでにプログラム中で利用した変数は、すべて dict 型で管理する。
まず、data_dict = {} のように、空のdict型を用意する。
プログラムの作業の中で再利用するデータは全て、data_dict["どのような変数かわかりやすい名前のキー"] = 何らかのデータ として保存する。例えば、tmp = 10 * 5 とやらず、data_dict["演算結果"] = 10 * 5 とする。もちろん一時的な利用の変数をわざわざ保存する必要はない。

保存

これまでのデータを保存するためには、open("ファイル名.binaryfile","wb")として書き込みモードでオープンする。
データを保存するためにdump(保存したい変数,f1)としてバイナリー形式で出力する。

読み込み

これまでの計算結果を再度利用するためには、open("ファイル名.binaryfile", "rb")として読み込みモードでオープンする。
データを読み込み再度変数として利用するためには、test_data = load(読み込みモードでオープンした情報)として読みこむ。

再利用

test_dataをそのまま利用する。特別な処理は必要なし。

プログラム例

from sklearn.externals.joblib import dump, load
import pandas as pd
import matplotlib.pyplot as plt
# データをまとめて入れておくもの
data_dict = {}
# データを読み込む
data_dict["str"] = "test"
data_dict["raw_data"] = pd.read_csv("data/2017_liquor_sales.csv", index_col=0, encoding="utf-8")

print(data_dict.keys())
print(data_dict["raw_data"].head())
f1 = open("data_dict.binaryfile","wb")
dump(data_dict,f1)
f1.close

f2 = open("data_dict.binaryfile", "rb")
test_data = load(f2)
f2.close
print("\n")
print(test_data.keys())
print(test_data["raw_data"].head())
dict_keys(['str', 'raw_data'])
       清酒     焼酎    ビール  ウイスキー   ワイン   発泡酒等  チューハイ・カクテル   他の酒
都市                                                           
札幌市  5052   5070  15284   2771  2425  13876        1880   844
青森市  7403  12208  13557   2910  2573  11019        4527   847
盛岡市  7956   7313  12289   2119  3533   8727        3661  1059
仙台市  7481   7247  10463   3954  2903   9164        2781   945
秋田市  9567   6969  15134   4241  3288  10834        4031   933


dict_keys(['str', 'raw_data'])
       清酒     焼酎    ビール  ウイスキー   ワイン   発泡酒等  チューハイ・カクテル   他の酒
都市                                                           
札幌市  5052   5070  15284   2771  2425  13876        1880   844
青森市  7403  12208  13557   2910  2573  11019        4527   847
盛岡市  7956   7313  12289   2119  3533   8727        3661  1059
仙台市  7481   7247  10463   3954  2903   9164        2781   945
秋田市  9567   6969  15134   4241  3288  10834        4031   933

テストに利用したデータ

本データは政府統計の総合窓口に掲載されている1世帯当たり年間の食料「酒類」別支出金額,購入数量及び平均価格の「家計調査結果」(総務省統計局)(https://www.e-stat.go.jp/stat-search/files?page=1&layout=datalist&toukei=00200561&tstat=000000330001&cycle=7&year=20170&month=0&tclass1=000000330001&tclass2=000000330004&tclass3=000000330006&stat_infid=000031705230)を抽出・整形したデータです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0