首页 > 解决方案 > 如何将excel文件的每一行读入一个列表,使整个数据成为一个列表?

问题描述

我在excel文件中有一个数据:

2 6 67 89 9 5564 23 67 97 45

4 5

6 8 67 68 57 46 23 34 56

8 76 32 98 79 24 65 75

12 6 65 98 43 45 78 45 98

23 56 76 98 45 32 34 45 76 9

45 43 76 98 68 98 89

67 12 76 23 34 45 65 23 34 765

89 23 98 90 45 43 67

98 34 12 76 32 3 86 8 78

我想将每一行作为一个列表读取,这样我想要的输出将是一个包含每一行作为列表的列表列表:

所需的输出需要看起来像,并且数据不应将自身转换为字符串:

[[2 6 67 89 9 5564 23 67 97 45] [ 4 5] [6 8 67 68 57 46 23 34 56] 
 [8 76 32 98 79 24 65 75]  
 [12 6 65 98 43 45 78 45 98] [23 56 76 98 45 32 34 45 76 9] 
 [45 43 76 98 68 98 89]
 [67 12 76 23 34 45 65 23 34 765] [89 23 98 90 45 43 67]
[98 34 12 76 32 3 86 8 78]]

实际上我曾尝试过使用 pandas,但 pandas 的问题在于它为每一行构建相同长度的行并将空列标记为 NaN,当我 keep_default_na=False 时,我的所有数据都将转换为我不想要的字符串。所以我不想使用熊猫数据框。

任何资源或参考都会有所帮助

谢谢

标签: pythonexcellistdataframe

解决方案


最后我在经过一些尝试和试验后对这个问题进行了排序,代码如下:

listoflist=[]
loc=('Your filename ')
a=xlrd.open_workbook(loc)
b=a.sheet_by_index(0)
for i in range(0,b.nrows):
    rli=[]
    for j in range(0,b.ncols):
        if b.cell_value(i,j) !='':
            rli.append(b.cell_value(i,j))
    listoflist.append(rli)

虽然它解决了我的问题,但如果有人可以优化或可以使这段代码更高效,那么非常受欢迎。


推荐阅读