python读取文件夹下所有csv并按照标签分类

# Read data and group by label
def read_and_group_data(data_folder):
    files = os.listdir(data_folder)
    label_data_dict = {}

    for file in files:
        label = file.split("_")[1].split(".")[0]
        label = ''.join([c for c in label if c.isalpha()])
        if label[-1].isnumeric():
            label = label[:-1]
        df = pd.read_csv(os.path.join(data_folder, file), encoding='ISO-8859-1')

        if label not in label_data_dict:
            label_data_dict[label] = pd.DataFrame()

        label_data_dict[label] = pd.concat([label_data_dict[label], df])

    return label_data_dict

输入文件夹名称,数据的标签是文件夹第一个下划线之后的第一个英文单词,输出的是按照标签分类数据的字典数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以按照以下步骤来实现: 1. 首先,使用Python的os模块,获取指定文件夹下所有csv文件文件名列表。 ``` import os path = '/path/to/folder' # 指定文件夹路径 csv_files = [f for f in os.listdir(path) if f.endswith('.csv')] # 获取所有csv文件名 ``` 2. 接下来,使用pandas的read_csv函数读取每个csv文件,并将第2列数据保存到一个数组中。 ``` import pandas as pd data = [] # 用于保存所有第2列数据的数组 for file in csv_files: df = pd.read_csv(os.path.join(path, file)) # 读取csv文件 data.append(df.iloc[:, 1]) # 保存第2列数据到数组中 ``` 3. 然后,将data数组合并成一个只有一列数据的DataFrame,并将其作为K邻近算法的特征变量。 ``` result = pd.concat(data, axis=1) # 合并成一个DataFrame result.columns = [f"feature_{i}" for i in range(1, len(csv_files) + 1)] # 给每一列设置特征名称 ``` 4. 最后,使用sklearn库中的KNeighborsClassifier类来实现K邻近算法,并使用result作为输入的特征变量。 ``` from sklearn.neighbors import KNeighborsClassifier X = result.values # 获取特征变量 y = [0, 1] * (len(csv_files) // 2) # 构造样本标签,假设有两类样本 knn = KNeighborsClassifier(n_neighbors=3) # 初始化K邻近分类器 knn.fit(X, y) # 训练K邻近分类器 ``` 这样,就完成了读取指定文件夹下所有csv文件的第2列数据,并将其作为K邻近算法的特征变量的操作。其中,样本标签的构造只是为了示例,实际应用中需要根据具体情况来定义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值