python读取csv文件组成得到文件夹用作训练集和测试集,要求文件夹的标题作为训练集和测试集的标签,读取csv文件的内容为第二列数据,编写python代码
时间: 2024-04-11 18:28:18 浏览: 131
CSV_read.rar_CSV_read_csv读取_保存csv_文件夹 CSV 数据 读取_读取csv文件
5星 · 资源好评率100%
以下是一个示例代码,用于读取CSV文件并按照要求组成训练集和测试集文件夹:
```python
import os
import csv
import shutil
# 读取CSV文件
def read_csv_file(file_path):
data = []
with open(file_path, 'r') as file:
reader = csv.reader(file)
for row in reader:
data.append(row)
return data
# 创建文件夹
def create_folder(folder_path):
if not os.path.exists(folder_path):
os.makedirs(folder_path)
# 将数据拆分为训练集和测试集
def split_data(data, train_ratio):
num_samples = len(data) - 1 # 减去标题行
num_train_samples = int(num_samples * train_ratio)
train_data = data[1:num_train_samples+1] # 训练集数据
test_data = data[num_train_samples+1:] # 测试集数据
return train_data, test_data
# 将数据保存到文件夹
def save_data_to_folders(data, folder_path):
for row in data:
label = row[0] # 标签,即文件夹的标题
content = row[1] # 数据内容
label_folder = os.path.join(folder_path, label)
create_folder(label_folder)
file_name = f"{content[:10]}.txt" # 使用部分内容作为文件名
file_path = os.path.join(label_folder, file_name)
with open(file_path, 'w') as file:
file.write(content)
# 主函数
def main(csv_file, train_ratio):
data = read_csv_file(csv_file)
train_data, test_data = split_data(data, train_ratio)
create_folder('train_set')
create_folder('test_set')
save_data_to_folders(train_data, 'train_set')
save_data_to_folders(test_data, 'test_set')
# 设置参数
csv_file_path = 'data.csv' # CSV文件路径
train_ratio = 0.8 # 训练集所占比例
# 调用主函数
main(csv_file_path, train_ratio)
```
请确保将 `data.csv` 替换为你的CSV文件路径,并根据需要调整训练集所占的比例。该代码会将训练集保存在名为 `train_set` 的文件夹中,将测试集保存在名为 `test_set` 的文件夹中。每个文件夹的标题将作为标签,文件内容将来自CSV文件的第二列数据。每个文件的文件名将使用内容的前10个字符。
阅读全文