TabularDataset 類別
表示要用於 Azure Machine Learning 的表格式數據集。
TabularDataset 會定義一系列的延遲評估、不可變的作業,以將數據從數據源載入表格式表示。 除非要求 TabularDataset 傳遞數據,否則不會從來源載入數據。
TabularDataset 是使用來自 from_delimited_filesTabularDatasetFactory 類別的方法所建立。
如需詳細資訊,請參閱 新增 & 註冊數據集一文。 若要開始使用表格式資料集,請參閱 https://aka.ms/tabulardataset-samplenotebook。
初始化 TabularDataset 物件。
此建構函式不應該直接叫用。 數據集旨在使用 TabularDatasetFactory 類別來建立。
- 繼承
-
TabularDataset
建構函式
TabularDataset()
備註
您可以使用 類別的方法TabularDatasetFactory,從 CSV、TSV、Parquet 檔案或 SQL 查詢from_*
建立 TabularDataset。 您可以在 TabularDataset 上執行子設定作業,例如分割、略過和篩選記錄。
子設定的結果一律是一或多個新的 TabularDataset 物件。
您也可以將 TabularDataset 轉換成其他格式,例如 pandas DataFrame。 當系統要求將數據傳遞至另一個儲存機制 (時,就會執行實際的數據載入,例如 Pandas 數據框架或 CSV 檔案) 。
TabularDataset 可用來做為實驗執行的輸入。 它也可以向具有指定名稱的工作區註冊,稍後再由該名稱擷取。
方法
download |
注意 這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。 將數據集定義的檔案數據流下載到本機路徑。 |
drop_columns |
從數據集卸除指定的數據行。 如果卸除時間範圍數據行,也會卸除傳回數據集的對應功能。 |
filter |
注意 這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。 篩選數據,只保留符合指定表達式的記錄。 |
get_profile |
注意 這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。 從針對此或工作區中相同數據集提交的最新配置檔執行取得數據配置檔。 |
get_profile_runs |
注意 這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。 傳回與工作區中這個或相同數據集相關聯的先前配置檔執行。 |
keep_columns |
保留指定的數據行,並從數據集卸除所有其他數據行。 如果卸除時間範圍數據行,也會卸除傳回數據集的對應功能。 |
mount |
注意 這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。 建立內容管理員,以掛接數據集所定義的檔案數據流作為本機檔案。 |
partition_by |
分割的數據將會複製並輸出至目標所指定的目的地。 使用數據分割格式從輸出的數據路徑建立數據集,如果提供名稱,請註冊數據集,並傳回具有分割區之新數據路徑的數據集
|
random_split |
將數據集中的記錄隨機分割成兩個部分,大約依指定的百分比來分割。 第一個數據集包含大約 |
skip |
依指定的計數略過數據集頂端的記錄。 |
submit_profile_run |
注意 這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。 提交實驗執行以計算數據配置檔。 數據配置檔對於瞭解輸入數據、識別異常和遺漏值非常有用,方法是提供數據行類型、遺漏值等實用資訊。 |
take |
依指定的計數從數據集頂端擷取記錄的範例。 |
take_sample |
依指定的機率,大約取得數據集中記錄的隨機樣本。 |
time_after |
在指定的開始時間之後,篩選具有時間戳數據行的 TabularDataset。 |
time_before |
在指定的結束時間之前,使用時間戳數據行篩選 TabularDataset。 |
time_between |
篩選指定開始和結束時間之間的 TabularDataset。 |
time_recent |
篩選 TabularDataset,只包含最近數據 (量) 指定的持續時間。 |
to_csv_files |
將目前的數據集轉換成包含 CSV 檔案的 FileDataset。 產生的數據集將包含一或多個 CSV 檔案,每個檔案對應至目前數據集的數據分割。 這些檔案在下載或讀取之前不會具體化。 |
to_dask_dataframe |
注意 這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。 傳回 Dask DataFrame,可延遲讀取數據集中的數據。 |
to_pandas_dataframe |
將所有記錄從數據集載入 pandas DataFrame。 |
to_parquet_files |
將目前的數據集轉換成包含 Parquet 檔案的 FileDataset。 產生的數據集將包含一或多個 Parquet 檔案,每個檔案對應至目前數據集的數據分割。 這些檔案在下載或讀取之前不會具體化。 |
to_spark_dataframe |
將所有記錄從數據集載入 Spark DataFrame。 |
with_timestamp_columns |
定義數據集的時間戳數據行。 |
download
注意
這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。
將數據集定義的檔案數據流下載到本機路徑。
download(stream_column, target_path=None, overwrite=False, ignore_not_found=True)
參數
名稱 | Description |
---|---|
stream_column
必要
|
要下載的數據流數據行。 |
target_path
必要
|
要下載檔案的本機目錄。 如果為 None,數據將會下載到暫存目錄。 |
overwrite
必要
|
指出是否要覆寫現有的檔案。 預設值是 False。 如果覆寫設定為 True,則會覆寫現有的檔案;否則會引發例外狀況。 |
ignore_not_found
必要
|
指出如果找不到數據集所指向的某些檔案,是否無法下載。 預設值為 True。 如果ignore_not_found設為 False,如果任何檔案下載失敗,下載將會失敗;否則,只要沒有遇到其他錯誤類型,就會記錄未找到錯誤的衝突,而且 dowload 將會成功。 |
傳回
類型 | Description |
---|---|
傳回所下載每個檔案的檔案路徑陣列。 |
drop_columns
從數據集卸除指定的數據行。
如果卸除時間範圍數據行,也會卸除傳回數據集的對應功能。
drop_columns(columns)
參數
名稱 | Description |
---|---|
columns
必要
|
要卸除之數據行的名稱或名稱清單。 |
傳回
類型 | Description |
---|---|
傳回已卸除指定數據行的新 TabularDataset 物件。 |
filter
注意
這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。
篩選數據,只保留符合指定表達式的記錄。
filter(expression)
參數
名稱 | Description |
---|---|
expression
必要
|
要評估的運算式。 |
傳回
類型 | Description |
---|---|
已修改的數據集 (取消註冊) 。 |
備註
表達式的開頭是使用數據行名稱來編製數據集的索引。 它們支持各種函式和運算符,而且可以使用邏輯運算符來結合。 產生的表達式會在數據提取發生且未定義的位置時,針對每個記錄延遲評估。
dataset['myColumn'] > dataset['columnToCompareAgainst']
dataset['myColumn'].starts_with('prefix')
get_profile
注意
這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。
從針對此或工作區中相同數據集提交的最新配置檔執行取得數據配置檔。
get_profile(workspace=None)
參數
名稱 | Description |
---|---|
workspace
必要
|
提交配置檔執行的工作區。 預設為此數據集的工作區。 如果數據集未與工作區相關聯,則為必要專案。 如需工作區的詳細資訊,請參閱 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.workspace.workspace 。 |
傳回
類型 | Description |
---|---|
從 DatasetProfile 類型的最新配置檔執行分析結果。 |
get_profile_runs
注意
這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。
傳回與工作區中這個或相同數據集相關聯的先前配置檔執行。
get_profile_runs(workspace=None)
參數
名稱 | Description |
---|---|
workspace
必要
|
提交配置檔執行的工作區。 預設為此數據集的工作區。 如果數據集未與工作區相關聯,則為必要專案。 如需工作區的詳細資訊,請參閱 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.workspace.workspace 。 |
傳回
類型 | Description |
---|---|
azureml.core.Run 類型的iterator物件。 |
keep_columns
保留指定的數據行,並從數據集卸除所有其他數據行。
如果卸除時間範圍數據行,也會卸除傳回數據集的對應功能。
keep_columns(columns, validate=False)
參數
名稱 | Description |
---|---|
columns
必要
|
要保留之數據行的名稱或名稱清單。 |
validate
必要
|
指出是否要驗證是否可以從傳回的數據集載入數據。 預設值是 False。 驗證要求數據源可從目前的計算存取。 |
傳回
類型 | Description |
---|---|
傳回新的 TabularDataset 物件,只保留指定的數據行。 |
mount
注意
這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。
建立內容管理員,以掛接數據集所定義的檔案數據流作為本機檔案。
mount(stream_column, mount_point=None)
參數
名稱 | Description |
---|---|
stream_column
必要
|
要掛接的數據流數據行。 |
mount_point
必要
|
要掛接檔案的本機目錄。 如果為 None,數據會掛接至暫存目錄,您可以藉由呼叫 MountContext.mount_point 實例方法來找到此目錄。 |
傳回
類型 | Description |
---|---|
<xref:azureml.dataprep.fuse.daemon.MountContext>
|
傳回用於管理掛接生命周期的內容管理員。 |
partition_by
分割的數據將會複製並輸出至目標所指定的目的地。
使用數據分割格式從輸出的數據路徑建立數據集,如果提供名稱,請註冊數據集,並傳回具有分割區之新數據路徑的數據集
ds = Dataset.get_by_name('test') # indexed by country, state, partition_date
# #1: call partition_by locally
new_ds = ds.partition_by(name="repartitioned_ds", partition_keys=['country'],
target=DataPath(datastore, "repartition"))
partition_keys = newds.partition_keys # ['country']
# new_ds can be passed to PRS as input dataset
partition_by(partition_keys, target, name=None, show_progress=True, partition_as_file_dataset=False)
參數
名稱 | Description |
---|---|
partition_keys
必要
|
必要,分割區索引鍵 |
target
必要
|
必要數據存放區路徑,數據框架 parquet 資料將會上傳至其中。 guid 資料夾將會在目標路徑下產生,以避免發生衝突。 |
name
必要
|
選擇性的註冊名稱。 |
show_progress
必要
|
選擇性,指出是否要在控制台中顯示上傳的進度。 預設值為 True。 |
partition_as_file_dataset
必要
|
選擇性,指出是否傳回 filedataset。 預設值為 False。 |
傳回
類型 | Description |
---|---|
已儲存或已註冊的數據集。 |
random_split
將數據集中的記錄隨機分割成兩個部分,大約依指定的百分比來分割。
第一個數據集包含大約 percentage
總記錄和剩餘記錄的第二個數據集。
random_split(percentage, seed=None)
參數
名稱 | Description |
---|---|
percentage
必要
|
分割數據集的近似百分比。 這必須是介於 0.0 和 1.0 之間的數位。 |
seed
必要
|
要用於隨機產生器的選擇性種子。 |
傳回
類型 | Description |
---|---|
傳回新的 TabularDataset 物件的元組,代表分割后的兩個數據集。 |
skip
依指定的計數略過數據集頂端的記錄。
skip(count)
參數
名稱 | Description |
---|---|
count
必要
|
要略過的記錄數目。 |
傳回
類型 | Description |
---|---|
傳回新的 TabularDataset 物件,代表略過記錄的數據集。 |
submit_profile_run
注意
這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。
提交實驗執行以計算數據配置檔。
數據配置檔對於瞭解輸入數據、識別異常和遺漏值非常有用,方法是提供數據行類型、遺漏值等實用資訊。
submit_profile_run(compute_target, experiment, cache_datastore_name=None)
參數
名稱 | Description |
---|---|
compute_target
必要
|
要執行配置檔計算實驗的計算目標。 指定 『local』 以使用本機計算。 如需計算目標的詳細資訊,請參閱 https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.computetarget 。 |
experiment
必要
|
|
cache_datastore_name
必要
|
要儲存配置檔快取的數據存放區名稱,如果為 None,則會使用預設資料存放區 |
傳回
類型 | Description |
---|---|
DatasetProfileRun 類別類型的物件。 |
take
依指定的計數從數據集頂端擷取記錄的範例。
take(count)
參數
名稱 | Description |
---|---|
count
必要
|
要擷取的記錄數目。 |
傳回
類型 | Description |
---|---|
會傳回代表取樣數據集的新 TabularDataset 物件。 |
take_sample
依指定的機率,大約取得數據集中記錄的隨機樣本。
take_sample(probability, seed=None)
參數
名稱 | Description |
---|---|
probability
必要
|
範例中包含記錄的機率。 |
seed
必要
|
要用於隨機產生器的選擇性種子。 |
傳回
類型 | Description |
---|---|
會傳回代表取樣數據集的新 TabularDataset 物件。 |
time_after
在指定的開始時間之後,篩選具有時間戳數據行的 TabularDataset。
time_after(start_time, include_boundary=True, validate=True)
參數
名稱 | Description |
---|---|
start_time
必要
|
篩選數據的下限。 |
include_boundary
必要
|
指出是否應該包含與界限時間相關聯的數據列 ( |
validate
必要
|
指出是否要在數據集中驗證指定的數據行是否存在。 預設值為 True。 驗證要求數據源可從目前的計算存取。 |
傳回
類型 | Description |
---|---|
具有新篩選數據集的 TabularDataset。 |
time_before
在指定的結束時間之前,使用時間戳數據行篩選 TabularDataset。
time_before(end_time, include_boundary=True, validate=True)
參數
名稱 | Description |
---|---|
end_time
必要
|
篩選數據的上限。 |
include_boundary
必要
|
指出是否應該包含與界限時間相關聯的數據列 ( |
validate
必要
|
指出是否要在數據集中驗證指定的數據行是否存在。 預設值為 True。 驗證要求數據源可從目前的計算存取。 |
傳回
類型 | Description |
---|---|
具有新篩選數據集的 TabularDataset。 |
time_between
篩選指定開始和結束時間之間的 TabularDataset。
time_between(start_time, end_time, include_boundary=True, validate=True)
參數
名稱 | Description |
---|---|
start_time
必要
|
篩選數據的下限。 |
end_time
必要
|
篩選數據的上限。 |
include_boundary
必要
|
指出是否應該包含與界限時間 ( |
validate
必要
|
指出是否要在數據集中驗證指定的數據行是否存在。 預設值為 True。 驗證要求數據源可從目前的計算存取。 |
傳回
類型 | Description |
---|---|
具有新篩選數據集的 TabularDataset。 |
time_recent
篩選 TabularDataset,只包含最近數據 (量) 指定的持續時間。
time_recent(time_delta, include_boundary=True, validate=True)
參數
名稱 | Description |
---|---|
time_delta
必要
|
要擷取之最近數據) 持續時間 (量。 |
include_boundary
必要
|
指出是否應該包含與界限時間相關聯的數據列 ( |
validate
必要
|
指出是否要在數據集中驗證指定的數據行是否存在。 預設值為 True。 驗證要求數據源可從目前的計算存取。 |
傳回
類型 | Description |
---|---|
具有新篩選數據集的 TabularDataset。 |
to_csv_files
將目前的數據集轉換成包含 CSV 檔案的 FileDataset。
產生的數據集將包含一或多個 CSV 檔案,每個檔案對應至目前數據集的數據分割。 這些檔案在下載或讀取之前不會具體化。
to_csv_files(separator=',')
參數
名稱 | Description |
---|---|
separator
必要
|
用來分隔結果檔案中值的分隔符。 |
傳回
類型 | Description |
---|---|
傳回新的 FileDataset 物件,其中包含一組 CSV 檔案,其中包含此數據集中的數據。 |
to_dask_dataframe
注意
這是實驗性方法,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。
傳回 Dask DataFrame,可延遲讀取數據集中的數據。
to_dask_dataframe(sample_size=10000, dtypes=None, on_error='null', out_of_range_datetime='null')
參數
名稱 | Description |
---|---|
sample_size
必要
|
要讀取以判斷架構和類型的記錄數目。 |
dtypes
必要
|
選擇性聽寫,指定預期的數據行及其 dtype。 如果提供,則會忽略sample_size。 |
on_error
必要
|
如何處理數據集中的任何錯誤值,例如剖析值時由錯誤所產生的錯誤值。 有效值為 'null',以 null 取代這些值;和 'fail' 會導致例外狀況。 |
out_of_range_datetime
必要
|
如何處理 Pandas 所支援範圍以外的日期時間值。 有效值為 'null',以 null 取代這些值;和 'fail' 會導致例外狀況。 |
傳回
類型 | Description |
---|---|
dask.dataframe.core.DataFrame |
to_pandas_dataframe
將所有記錄從數據集載入 pandas DataFrame。
to_pandas_dataframe(on_error='null', out_of_range_datetime='null')
參數
名稱 | Description |
---|---|
on_error
必要
|
如何處理數據集中的任何錯誤值,例如剖析值時由錯誤所產生的錯誤值。 有效值為 'null',以 null 取代這些值;和 'fail' 會導致例外狀況。 |
out_of_range_datetime
必要
|
如何處理 Pandas 所支援範圍以外的日期時間值。 有效值為 'null',以 null 取代這些值;和 'fail' 會導致例外狀況。 |
傳回
類型 | Description |
---|---|
傳回 pandas DataFrame。 |
to_parquet_files
將目前的數據集轉換成包含 Parquet 檔案的 FileDataset。
產生的數據集將包含一或多個 Parquet 檔案,每個檔案對應至目前數據集的數據分割。 這些檔案在下載或讀取之前不會具體化。
to_parquet_files()
傳回
類型 | Description |
---|---|
傳回新的 FileDataset 物件,其中包含此數據集內數據的一組 Parquet 檔案。 |
to_spark_dataframe
with_timestamp_columns
定義數據集的時間戳數據行。
with_timestamp_columns(timestamp=None, partition_timestamp=None, validate=False, **kwargs)
參數
名稱 | Description |
---|---|
timestamp
必要
|
用來稱為選擇性) fine_grain_timestamp) (时间戳 (數據行的名稱。 默認值為 [無] (清除) 。 |
partition_timestamp
必要
|
用來稱為粗細時間戳的數據行partition_timestamp (名称,) (選擇性) 。 默認值為 [無] (清除) 。 |
validate
必要
|
指出是否要在數據集中驗證指定的數據行是否存在。 預設值是 False。 驗證要求數據源可從目前的計算存取。 |
傳回
類型 | Description |
---|---|
傳回已定義時間戳數據行的新 TabularDataset。 |
備註
方法會定義要當做時間戳使用的數據行。 數據集上的時間戳數據行可讓您將數據視為時間序列數據,並啟用其他功能。 當數據集同時 timestamp (used to be referred as fine_grain_timestamp)
指定 和 partition_timestamp (used to be referred as coarse grain timestamp)
時,這兩個數據行應該代表相同的時程表。