我是keras库和Python的新手。我正在尝试使用pandas导入excel文件,并使用pandas的numpy.ndarray
函数将其转换为as_matrix()
。但它接缝错误地读取我的文件。就像我在Excel文件中有一个90x1049的数据集。但是当我试图将它转换为numpy数组时,它将我的数据读取为89x1049。我使用以下代码,但无效:
training_data_x = pd.read_excel("/home/workstation/ANN/new_input.xlsx")
X_train = training_data_x.as_matrix()
答案 0 :(得分:3)
可能会发生的情况是您的Excel文件没有标题行,因此pandas.read_excel
会消耗您的第一个数据行。
我尝试创建包含
的xlsx1 2 3
2 3 4
3 4 5
4 5 6
5 6 7
6 7 8
7 8 9
8 9 10
9 10 11
10 11 12
阅读导致
In [3]: df = pandas.read_excel('test.xlsx')
In [4]: df
Out[4]:
1 2 3
0 2 3 4
1 3 4 5
2 4 5 6
3 5 6 7
4 6 7 8
5 7 8 9
6 8 9 10
7 9 10 11
8 10 11 12
可以看出,第一个数据行已被用作列的标签。
为避免将第一个数据行作为标题使用,请将headers=None
传递给read_excel
。有趣的是documentation之前没有提到过这种用法,但自从以来一直没有修复:
标题: int,整数列表,默认为0
用于解析的DataFrame的列标签的行(0索引)。如果传递了整数列表,那么这些行位置将合并为
MultiIndex
。如果没有标题,请使用“无”。
答案 1 :(得分:2)
如果您没有标题,请尝试以下操作:
training_data = pd.read_excel("/home/workstation/ANN/new_input.xlsx", header=None)
X_train = training_data_x.as_matrix()
另请参阅previous question的答案。