【问题标题】:How to convert an excel file data into numpy array using pandas?如何使用 pandas 将 excel 文件数据转换为 numpy 数组?
【发布时间】:2016-04-02 07:00:23
【问题描述】:

我是 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()

【问题讨论】:

  • 我猜你的 excel 文件第一行没有标题行。您能否提供一个结果pandas.DataFrame 的样本?

标签: python numpy pandas keras


【解决方案1】:

可能发生的情况是您的 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

可以看出,第一个数据行已被用作列的标签。

为避免将第一个数据行用作标题,请将header=None 传递给read_excel。有趣的是,documentation 之前没有提到这种用法,但此后已修复:

header : int,整数列表,默认0

用于已解析 DataFrame 的列标签的行(0-indexed)。如果传递了一个整数列表,这些行位置将组合成一个MultiIndex。如果没有标题,请使用 None。

【讨论】:

    【解决方案2】:

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

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

    另请参阅previous question 的回答。

    【讨论】:

    • 使用.as_matrix 时会出现以下警告:FutureWarning: Method .as_matrix will be removed in a future version.请改用.values。所以现在使用.values 可能是一个更好的选择
    猜你喜欢
    • 2014-03-23
    • 2020-06-20
    • 1970-01-01
    • 2022-01-12
    • 2018-09-17
    • 2019-08-04
    • 2020-02-10
    相关资源
    最近更新 更多