需要Python帮助。将电子表格中的数据收集到可以容纳字符串和数字的数组中的最佳方法是什么

时间:2018-09-01 11:11:46

标签: python arrays excel string pandas

想从电子表格导入数据,当前使用pyxl。什么是读取Excel数据并将其插入2D数组的最佳方法。是脾气暴躁吗?大熊猫?清单?我是新手,我正在努力如何像这样插入变量:

MaterialData [y,x] =电子表格中的数据,其中y是行,x是列。 我正在使用for循环遍历单元格,但找不到将数据放入数组的方法。

for i in range(1, rows+1):
    for j in range(1, 6):
        col = sh.cell(i, j)
        col1 = col.value
        materialsList[i,j] = col1

最后一行显然是错误的,但这是我想做的,只要有道理! excel文件是物料清单,其中每一列都有不同的价格,并根据用户在程序中选择的内容显示该价格。 (嗯,这是我想要实现的非常简化的版本)。该数组中的部分数据将使用tkinter出现在列表框上,具体取决于用户设置的标志。

欢迎任何建议!

2 个答案:

答案 0 :(得分:0)

要处理电子表格,使用熊猫比使用numpy数组更好。 Pandas DataFrame是底层的2D numpy数组。但是最好有列标题,索引等,以便我们可以即时更改这些内容 熊猫具有许多内置函数,可以很好地处理异构数据,这使工作变得容易。

将熊猫数据框转换为其Numpy数组表示形式的方法。

 spreadsheet_np_array = df.as_matrix(columns=None)
 OR
 spreadsheet_np_array = df.values
 OR
 spreadsheet_np_array=np.asarray(your_data_frame_here).

pandas reference

答案 1 :(得分:0)

pandas是一个非常好的库,允许开发人员使用excel文件。 在与excel文件相同的位置尝试以下代码。

    import pandas as pd
    file_x = 'Scores.xlsx'
    scores = pd.read_excel(file_x)
    scores_dict = scores.to_dict()
    rows = []
    for row in scores_dict.values():
        cols = []
        for col in row.values():
            cols.append(col)
        rows.append(cols)
    print(rows)

应该解决的问题