互联网服务python

我有A,B两个Excel表,如何通过sklearn实现A表为训练集,B表为测试集?

目前我有A表,然后再A表上划分训练集和测试集,代码如下:

读取数据

data = pd.read_excel(r'C:\\Users\\bingfeng\\Desktop\\多光谱波段数据\\A.xlsx', header=1)
X = data.iloc[:, 1:] # 特征
y = data.iloc[:, 0] # 标签

划分数据为训练集和测试集,比例为6:4

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=12)

我的问题是
我有A表(2022年)、B表(2023年),我想将A表为训练集,B表为测试集,如何写python代码

参与8

1同行回答

热心冰块热心冰块项目经理浪潮INSPUR
这是要做AI?显示全部

这是要做AI?

收起
系统集成 · 2023-09-18
  • 不是做AI,跑一些数据。老师,你能帮忙解决下吗
    2023-09-21
  • 如果单纯的两表或两个范围的数据对比就两个变量分别打开两个表,用嵌套双循环内外循环各遍历一个表,外层用变量读训练数据,内层用变量读测试数据,对比算法在内层实现。
    2023-09-21

ChatGPT 回答

假设A表和B表的数据结构相同,可以按照以下步骤进行:

  1. 分别读取A表和B表的数据,可以使用pandas库的read_excel函数。
import pandas as pd

# 读取A表和B表
df_a = pd.read_excel(r'C:UsersbingfengDesktop多光谱波段数据A.xlsx', header=1)
df_b = pd.read_excel(r'C:UsersbingfengDesktop多光谱波段数据B.xlsx', header=1)
  1. 将A表的数据作为训练集,B表的数据作为测试集,可以使用pandas库的concat函数将A表和B表合并,然后使用sklearn库的train_test_split函数进行划分。
from sklearn.model_selection import train_test_split

# 将A表的数据作为训练集,B表的数据作为测试集
df_train = df_a
df_test = df_b

# 将A表和B表合并
df = pd.concat([df_a, df_b], ignore_index=True)

# 划分数据为训练集和测试集,比例为6:4
X_train, X_test, y_train, y_test = train_test_split(df.iloc[:, 1:], df.iloc[:, 0], test_size=0.4, random_state=12)

注意,这里使用了concat函数的ignore_index参数,将合并后的数据的索引重新编号,避免出现重复索引的问题。

提问者

kenven_zj
软件开发师河南
擅长领域: python

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-09-18
  • 关注会员:2 人
  • 问题浏览:1304
  • 最近回答:2023-09-18
  • X社区推广