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であり、かつnameNoneでない場合:

    • 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_matchFalseであり、引数nameが1より大きいstrオブジェクトのリストであり、引数objsNoneでない。

  • 引数regex_matchTrueであり、引数nameobjsが同じ長さでないリストである。

例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