【问题标题】:how to create a dataset from three files on disk with datasets library in python?如何使用 python 中的数据集库从磁盘上的三个文件创建数据集?
【发布时间】:2023-02-16 15:34:33
【问题描述】:

我在磁盘上有三个名为 train.xlsx、validation.xlsx 和 test.xlsx 的文件。 我需要一个包含这三个文件的数据集库的数据集。 这是我的代码:

from google.colab import drive
from datasets import Dataset
import pandas as pd
drive.mount('/content/drive')
train_data = pd.read_excel('/content/drive/My Drive/NLP-Datasets/Question2_Data/train.xlsx')
validation_data = pd.read_excel('/content/drive/My Drive/NLP-Datasets/Question2_Data/valid.xlsx')
test_data = pd.read_excel('/content/drive/My Drive/NLP-Datasets/Question2_Data/test.xlsx')

print(train_data.shape)
print(validation_data.shape)
print(test_data.shape)

现在我需要一个数据集,其中包含来自相应文件的这些键: 数据集['train'] 和数据集['validation'] 和数据集['test'] 谁能帮帮我?

【问题讨论】:

    标签: python pandas huggingface-datasets


    【解决方案1】:

    尝试这个

    
    train_data = train_data.values.tolist()
    validation_data = validation_data.values.tolist()
    test_data = test_data.values.tolist()
    d = {'train_data ' : train_data ,
    'validation_data ' : validation_data ,
    'test_data ' : test_data 
    }
    df = pd.DataFrame(data = d)
    

    值得注意的是,如果这些数据帧只有一列,.values.tolist() 就可以工作,如果没有,请指定它,例如:train_data ['COLUMN'].values.tolist()

    【讨论】:

    • 为什么要尝试为每个数据集创建一个列表?
    • @HosseinSedghian 能够连接单个数据集中的值和不同列中的每个数据帧
    【解决方案2】:

    试试这个

    import pandas as pd
    import os
    
    from google.colab import drive
    drive.mount('/content/drive')
    
    os.chdir('/content/drive/My Drive/NLP-Datasets/Question2_Data/')
    
    train_data = 'train.xlsx'
    validation_data = 'valid.xlsx'
    test_data = 'test.xlsx'
    
    paths = [train_data, validation_data , test_data ]
    dfs = {p: pd.read_excel(p) for p in paths}
    

    更新: 您可以使用 Python 中的数据集库从磁盘上的三个文件创建数据集,如下所示:

    from google.colab import drive
    from datasets import Dataset
    import pandas as pd
    
    # Mount Google Drive
    drive.mount('/content/drive')
    
    # Load train, validation, and test data
    train_data = pd.read_excel('/content/drive/My Drive/NLP-Datasets/Question2_Data/train.xlsx')
    validation_data = pd.read_excel('/content/drive/My Drive/NLP-Datasets/Question2_Data/valid.xlsx')
    test_data = pd.read_excel('/content/drive/My Drive/NLP-Datasets/Question2_Data/test.xlsx')
    
    # Convert data to dictionary format
    train_dict = train_data.to_dict(orient='list')
    validation_dict = validation_data.to_dict(orient='list')
    test_dict = test_data.to_dict(orient='list')
    
    # Create a dataset from the data
    dataset = Dataset.from_dict({
        'train': train_dict,
        'validation': validation_dict,
        'test': test_dict
    })
    
    # Print the shapes of the data
    print(dataset['train'].shape)
    print(dataset['validation'].shape)
    print(dataset['test'].shape)
    

    【讨论】:

    • 你能告诉我如何创建正确的路径吗?正如我提到的,我的文件在我的谷歌驱动器上,我需要绝对路径。但是您的代码只使用了“train.xlsx”和另外两个。如何创建绝对路径?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 2019-10-25
    • 2022-06-12
    相关资源
    最近更新 更多