0

这是 xls 文件:

moto    5   2   45
moto    2   4   43
coche   8   54  12
coche   43  21  6
coche   22  14  18

这是使用 pyexcel 库的代码:

import pyexcel as pe
data = pe.get_sheet(file_name="vehiculo.xls")
sheet = pe.Sheet(data, name_rows_by_column=0)
sheet.row.select(['coche'])
sheet.save_as("output.xls")

它只返回名称为“coche”的第一行:

coche   8   54  12

我想要所有名为“coche”的行。

任何想法?谢谢

4

2 回答 2

0

只需遍历数据:

import pyexcel
from collections import defaultdict

results = defaultdict(list)
data = pe.get_sheet(file_name="vehiculo.xls")
for row in data.rows():
   results[row[0]] += row[1:]

您将获得以下信息:

>>> results['moto']
[5L, 2L, 45L, 2L, 4L, 43L]
于 2016-10-04T08:53:48.920 回答
0

对于“选择”功能没有按预期工作的事实,我深表歉意。它不起作用,因为该行的其余部分变为 coche-1、coche-2(您可以通过 来查看print(s))。这是具有相同名称的行名称的默认行为。将来会改变。

现在,为了让您的用例正常工作,您可以使用 pyexcel==0.3.0+ 和以下语句:

...
>>> sheet = pe.Sheet(data) # , name_rows_by_column=0)
>>> del sheet.row[lambda row_inde,row: row[0] != 'coche']
...

这是有关此功能的文档。

于 2016-11-16T12:29:22.650 回答