7.4.6 データストア・オブジェクトの削除
oml.ds.delete
関数は、データストアまたはデータストア内のオブジェクトを削除します。
oml.ds.delete
関数を使用して、データベース・スキーマ内の1つ以上のデータストアを削除したり、データストア内のオブジェクトを削除します。
oml.ds.delete
の構文は次のとおりです。
oml.ds.delete(name, objs=None, regex_match=False)
name
パラメータの引数には、次のいずれかを指定できます。
-
変更または削除するデータストアの名前を指定する文字列、または削除するデータストアと照合する正規表現。
-
オブジェクトを削除するデータストアの名前を指定する
str
オブジェクトのリスト。
objs
パラメータでは、データストアから削除するオブジェクトを指定します。objs
パラメータの引数には、次のいずれかを指定できます。
-
1つ以上のデータストアから削除するオブジェクトを指定する文字列、または削除するオブジェクトと照合する正規表現。
-
None
(デフォルト)。データストア全体を削除します。
regex_match
パラメータは、name
またはobjs
引数が正規表現かどうかを示すbool
です。デフォルト値は、False
です。regex_match
パラメータは、次のように動作します。
-
regex_match=False
であり、かつname
がNone
でない場合:-
objs=None
の場合、oml.ds.delete
は、name
引数で指定したデータストアを削除します。 -
name
引数で1つ以上のデータストアを指定し、objs
引数で1つ以上のデータストア・オブジェクトを指定した場合、oml.ds.delete
は、指定したPythonオブジェクトをデータストアから削除します。
-
-
regex_match=True
の場合:-
objs=None
の場合、oml.ds.delete
は、name
引数で指定したデータストアを削除します。 -
name
引数が文字列であり、objs
引数で1つ以上のデータストア・オブジェクトを指定した場合、oml.ds.delete
は、objs
引数で指定した正規表現と一致する名前を持つオブジェクトをデータストアから削除します。 -
name
引数がstr
オブジェクトのリストである場合、objs
引数はname
と同じ長さのstr
オブジェクトのリストである必要があり、oml.ds.delete
は、objs
で指定した正規表現と一致する名前を持つオブジェクトをデータストアから削除します。
-
次の場合、この関数ではエラーが発生します。
-
指定したデータストアが存在しない。
-
引数
regex_match
がFalse
であり、引数name
が1より大きいstr
オブジェクトのリストであり、引数objs
がNone
でない。 -
引数
regex_match
がTrue
であり、引数name
とobjs
が同じ長さでないリストである。
例7-18 データストア・オブジェクトの削除
この例では、oml.ds.delete
関数の使用方法を示します。この例で使用しているデータストアの作成については、例7-14を参照してください。
import oml
# Show the existing datastores.
oml.ds.dir()
# Show the Python objects in the ds_pydata datastore.
oml.ds.describe(name='ds_pydata')
# Delete some objects from the datastore.
oml.ds.delete(name="ds_pydata", objs=["wine", "oml_boston"])
# Delete a datastore.
oml.ds.delete(name="ds_pydata")
# Delete all datastores whose names match a pattern.
oml.ds.delete(name="_pymodel", regex_match=True)
# Show the existing datastores again.
oml.ds.dir()
この例のリスト
>>> import oml
>>>
>>> # Show the existing datastores.
... oml.ds.dir()
datastore_name object_count size date description
0 ds_pydata 3 26214 2019-05-18 21:04:06 python datasets
1 ds_pymodel 2 6370 2019-05-18 21:08:18 None
2 ds_wine_data 1 1410 2019-05-18 21:06:53 wine dataset
>>>
>>> # Show the Python objects in the ds_pydata datastore.
... oml.ds.describe(name='ds_pydata')
object_name class size length row_count col_count
0 oml_boston oml.DataFrame 1073 506 506 14
1 oml_diabetes oml.DataFrame 964 442 442 11
2 wine Bunch 24177 5 1 5
>>>
>>> # Delete some objects from a datastore.
... oml.ds.delete(name="ds_pydata", objs=["wine", "oml_boston"])
{'wine', 'oml_boston'}
>>>
>>> # Delete a datastore.
... oml.ds.delete(name="ds_pydata")
'ds_pydata'
>>>
>>> # Delete all datastores whose names match a pattern.
... oml.ds.delete(name="_pymodel", regex_match=True)
{'ds_pymodel'}
>>>
>>> # Show the existing datastores again.
... oml.ds.dir()
datastore_name object_count size date description
0 ds_wine_data 1 1410 2019-05-18 21:06:53 wine dataset
親トピック: データベースへのPythonオブジェクトの保存