Aad*_*Ura 3 python dataframe pandas huggingface-transformers huggingface-datasets
我正在尝试将训练和测试数据帧加载到数据集对象中。将 pandas 数据帧加载到数据集对象中的常用方法是:
from datasets import Dataset
import pandas as pd
df = pd.DataFrame({"a": [1, 2, 3]})
dataset = Dataset.from_pandas(df)
Run Code Online (Sandbox Code Playgroud)
我的问题是如何将训练和测试两个 pandas 数据帧加载到数据集中?
例如,如果我有两个数据框:
from datasets import Dataset
import pandas as pd
df_train = pd.DataFrame({"a": [1, 2, 3]})
df_test = pd.DataFrame({"ab": [1, 2, 3]})
Run Code Online (Sandbox Code Playgroud)
如何加载这两个框架?
rbi*_*rbi 10
您可以使用DatasetDict
和将两个 pandas 数据帧加载到数据集中Dataset.from_pandas()
。您可以通过向 DatasetDict 添加键来保持训练和测试的分离。
from datasets import Dataset, DatasetDict
import datasets
import pandas as pd
df_train = pd.DataFrame({"a": [1, 2, 3]})
df_test = pd.DataFrame({"ab": [1, 2, 3]})
datasets_train_test = DatasetDict({
"train": Dataset.from_pandas(df_train),
"test": Dataset.from_pandas(df_test)
})
Run Code Online (Sandbox Code Playgroud)
这导致
DatasetDict({
train: Dataset({
features: ['a'],
num_rows: 3
})
test: Dataset({
features: ['ab'],
num_rows: 3
})
})
Run Code Online (Sandbox Code Playgroud)
您可以用来concatenate_datasets()
连接数据集列表。
dataset_train = Dataset.from_pandas(df_train)
dataset_test = Dataset.from_pandas(df_test)
datasets_all_in_one = datasets.concatenate_datasets([dataset_train, dataset_test])
Run Code Online (Sandbox Code Playgroud)
这导致
Dataset({
features: ['a', 'ab'],
num_rows: 6
})
Run Code Online (Sandbox Code Playgroud)