【问题标题】:Save training and test set .csv files with custom names使用自定义名称保存训练和测试集 .csv 文件
【发布时间】:2021-11-14 06:51:20
【问题描述】:

我有十个数据集,分为训练集和测试集:

names=["df1","df2","df3", "df4", "df5", "df6", "df7", "df8", "df9", "df10"]
dataset_list = []
for i in range(len(names)):
    datasets = pd.read_csv(f"{fulldatafolder}/"+names[i]+"_Full_Dataset.csv")
    dataset_list.append(datasets)
training_set_list=list()
test_set_list=list()
for dataset in dataset_list:
    training_sets, test_sets=np.split(dataset, [int(.90*len(dataset))])
    training_set_list.append(training_sets)
    test_set_list.append(test_sets)

但是,如果我尝试将所有这些数据集保存到它们各自的文件夹中,如下所示:

for names, dataset in enumerate(training_set_list):
    dataset.to_csv(f"{trainingfolder}/{format(names)}_Training_Set.csv", index=False, sep=",")
for names, dataset in enumerate(test_set_list):
    dataset.to_csv(f"{testfolder}/{format(names)}_Test_Set.csv", index=False, sep=",")

我得到的 .csv 文件在“_Training_Set.csv”和“_Test_Set.csv”前面带有一个数字 (0,...,9),而不是它们的名称“df1”、...、“df10”在列表names 中指定。我该如何解决这个问题?

【问题讨论】:

    标签: python list dataframe for-loop split


    【解决方案1】:

    使用枚举时,它会返回计数器和值。基本上,您在这里所做的是引入一个新的本地 names 变量(而不是前一个,带有名称列表),其中包含来自枚举的计数器。我猜你认为这会遍历原始变量。

    如果你想遍历这两个列表,你可以使用zip():

    for name, dataset in zip(names, training_set_list):
        dataset.to_csv(f"{trainingfolder}/{format(name)}_Training_Set.csv", index=False, sep=",")
    for name, dataset in zip(names, test_set_list):
        dataset.to_csv(f"{testfolder}/{format(name)}_Test_Set.csv", index=False, sep=",")
    

    除此之外,我会更改您的第一个循环:

    for i in range(len(names)):
        datasets = pd.read_csv(f"{fulldatafolder}/"+names[i]+"_Full_Dataset.csv")
    

    到:

    for name in names:
        datasets = pd.read_csv(f"{fulldatafolder}/{name}_Full_Dataset.csv")
    

    如您所见,当您可以直接遍历列表时,无需创建范围。其次,既然您已经使用"f" 来格式化字符串,最好直接在字符串中使用该变量,而不是用"+" 符号连接字符串。

    【讨论】:

    • 非常清楚,谢谢!
    猜你喜欢
    • 2022-01-22
    • 2014-07-06
    • 2021-06-09
    • 2014-06-12
    • 1970-01-01
    • 2023-01-21
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    相关资源
    最近更新 更多