如何使用pandas将excel文件数据转换为numpy数组?

2024-05-21 08:59:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我在keras库和Python中都是新手。我正在尝试使用pandas导入一个excel文件,并使用pandas的as_matrix()函数将其转换为numpy.ndarray。但我的文件读错了。就像我在Excel文件中有一个90x1049数据集。但当我试图将它转换成numpy数组时,它读取我的数据为89x1049。我正在使用以下代码,但不起作用:

training_data_x = pd.read_excel("/home/workstation/ANN/new_input.xlsx")
X_train = training_data_x.as_matrix()

Tags: 文件数据函数numpypandasdataastraining
2条回答

可能发生的情况是,您的Excel文件没有标题行,因此pandas.read_excel将使用您的第一个数据行。

我试着创建一个xlsx包含

1   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之前没有提到这个用法,但在以下情况下被修复:

header : int, list of ints, default 0

Row (0-indexed) to use for the column labels of the parsed DataFrame. If a list of integers is passed those row positions will be combined into a MultiIndex. Use None if there is no header.

如果没有标题,请尝试以下操作:

training_data = pd.read_excel("/home/workstation/ANN/new_input.xlsx", header=None)

X_train = training_data_x.as_matrix()

另请参见aprevious question中的答案。

相关问题 更多 >