You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按类别读取数据并将其分配至独立变量中

嘿,没问题!我来帮你搞定按类别读取数据并存入独立变量的操作,结合你给出的代码片段,具体步骤和调整后的代码如下:

按类别读取并拆分数据到独立变量的方法

1. 先确认数据中的类别列

首先得确保你的dataRaw数据集里有一个用来区分类别的列(比如叫Class或Category,你要换成自己数据里的实际列名)。可以先跑几行代码确认:

# 查看数据前5行,确认类别列位置
print(dataRaw.head())
# 提取所有唯一类别
unique_categories = dataRaw['Class'].unique()
print(f"数据里的所有类别: {unique_categories}")

2. 手动拆分(适合类别少的情况)

如果类别数量不多,你可以直接按类别筛选,把每个类别的数据存入单独变量:

# 假设类别是ClassA、ClassB、ClassC
data_classA = dataRaw[dataRaw['Class'] == 'ClassA']
data_classB = dataRaw[dataRaw['Class'] == 'ClassB']
data_classC = dataRaw[dataRaw['Class'] == 'ClassC']

# 验证拆分结果
print(f"ClassA的数据量: {len(data_classA)}")
print(f"ClassB的数据量: {len(data_classB)}")

3. 自动拆分到字典(适合多类别场景)

如果类别很多,手动创建变量太繁琐,推荐用字典来存储——键是类别名称,值是对应类别的数据框,这样调用起来也方便:

# 初始化空字典
category_data_dict = {}
# 遍历所有类别,拆分数据并存入字典
for cat in unique_categories:
    category_data_dict[cat] = dataRaw[dataRaw['Class'] == cat]

# 示例:取出某一类别的数据
print(f"ClassX的数据前5行:\n{category_data_dict['ClassX'].head()}")

4. 整合到你现有代码的完整示例

我还帮你更新了代码里一些过时的模块(比如sklearn.cross_validation已经被弃用,换成了model_selection;pandas的sheetname参数也更新为sheet_name),完整代码如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
from sklearn.preprocessing import StandardScaler

dataFileName='RFInput.xlsx'
sheetName='Rawdata'
sheetNamePara='paraList'

# 读取Excel数据
dataRaw=pd.read_excel(dataFileName, sheet_name=sheetName)
datapara=pd.read_excel(dataFileName, sheet_name=sheetNamePara)

noData=len(dataRaw)
print(f"总数据量: {noData}")

# 替换成你数据里实际的类别列名
category_column = 'Class'
unique_categories = dataRaw[category_column].unique()
print(f"检测到的类别: {unique_categories}")

# 自动拆分数据到字典
category_data = {}
for category in unique_categories:
    category_data[category] = dataRaw[dataRaw[category_column] == category]
    print(f"已完成类别 {category} 的拆分,数据量: {len(category_data[category])}")

# 示例:取出其中一个类别的数据进行后续处理
if 'Class1' in category_data:
    class1_dataset = category_data['Class1']
    print("Class1数据集前5行:\n", class1_dataset.head())

内容的提问来源于stack exchange,提问作者Balaji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:17:35