将 pandas 数据框转换为 datasetDict

Convert pandas dataframe to datasetDict

我无法在任何地方找到如何将 pandas 数据帧转换为 datasets.dataset_dict.DatasetDict 类型,以便在带有 huggingface 模型的 BERT 工作流程中得到最佳使用。以这些简单的数据帧为例。

train_df = pd.DataFrame({
     "label" : [1, 2, 3],
     "text" : ["apple", "pear", "strawberry"]
})

test_df = pd.DataFrame({
     "label" : [2, 2, 1],
     "text" : ["banana", "pear", "apple"]
})

将这些转换为上述类型的最有效方法是什么?

一种可能是先创建两个数据集,然后加入它们:

import datasets
import pandas as pd


train_df = pd.DataFrame({
     "label" : [1, 2, 3],
     "text" : ["apple", "pear", "strawberry"]
})

test_df = pd.DataFrame({
     "label" : [2, 2, 1],
     "text" : ["banana", "pear", "apple"]
})

train_dataset = Dataset.from_dict(train_df)
test_dataset = Dataset.from_dict(test_df)
my_dataset_dict = datasets.DatasetDict({"train":train_dataset,"test":test_dataset})

结果是:

DatasetDict({
    train: Dataset({
        features: ['label', 'text'],
        num_rows: 3
    })
    test: Dataset({
        features: ['label', 'text'],
        num_rows: 3
    })
})