想从电子表格导入数据,当前使用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出现在列表框上,具体取决于用户设置的标志。
欢迎任何建议!
答案 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).
答案 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)
应该解决的问题