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

如何在TensorFlow-Python中读取.xls文件并转换为Dataset

嘿,我来帮你搞定这个把.xls文件转成TensorFlow Dataset的问题!其实整个流程很清晰,我给你一步步拆解:

解决方案:将Excel(.xls)文件转换为TensorFlow Dataset

步骤1:安装必要的依赖库

首先得装几个工具库,用来读取Excel文件、处理数据以及构建TensorFlow数据集:

pip install pandas xlrd tensorflow scikit-learn

小贴士:xlrd是专门用来读取旧格式.xls文件的库,scikit-learn是用来处理标签编码的可选工具(如果你的标签是字符串类型的话)。

步骤2:读取Excel中的数据

你提到的这个BreastTissue数据集,Excel文件里有两个工作表:第一个是说明文档,实际训练数据在第二个工作表(索引为1)。所以读取的时候要指定sheet参数:

import pandas as pd

# 读取Excel里的实际数据工作表
df = pd.read_excel("BreastTissue.xls", sheet_name=1)

# 可以先打印前几行确认数据读取正确
print(df.head())

步骤3:分离特征与标签并预处理

这个数据集里的Class列是我们要预测的目标标签,其他列都是输入特征。先把它们分开:

# 提取所有特征(去掉Class列)
features = df.drop(columns=["Class"]).values
# 提取标签列
labels = df["Class"].values

因为标签是字符串类型(比如car、fad这类类别),模型没法直接处理,所以我们用标签编码把它们转成整数:

from sklearn.preprocessing import LabelEncoder

label_encoder = LabelEncoder()
# 对标签进行编码,把字符串转成整数
encoded_labels = label_encoder.fit_transform(labels)

步骤4:转换为TensorFlow Dataset

现在就可以把预处理好的特征和标签转换成TensorFlow Dataset了,之后还可以做打乱、分批这些常规操作:

import tensorflow as tf

# 从numpy数组创建Dataset
dataset = tf.data.Dataset.from_tensor_slices((features, encoded_labels))

# 打乱数据并设置批次大小(这里设为32,你可以根据需求调整)
dataset = dataset.shuffle(buffer_size=len(df)).batch(32)

# 可以取一个批次验证一下
for batch_features, batch_labels in dataset.take(1):
    print("单批次特征形状:", batch_features.shape)
    print("单批次标签形状:", batch_labels.shape)

额外提示:处理超大型Excel文件

如果你的Excel文件特别大,没法一次性全部读入内存,建议先把.xls文件导出成.csv格式(用Excel本身或者pandas的df.to_csv()都可以),然后用TensorFlow的tf.data.experimental.make_csv_dataset来流式读取,这样能节省内存,效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:56:59