使用 python 根据计数解析和打印 Excel 单元格数据

Parse and print Excel cell data based on count using python

我必须根据列数据解析 Excel 表。例如,我在 'column 2' 中有 4 个逗号分隔值,我想打印 4 行,每行包含第 2 列中的 1 个值。

我得到这样的输出。

1,2,abc,def,ghi,jkl,11,10,10
3,4,abc,def,ghi,jkl,12,12,11

预期的输出是这样的。

1,2,abc,11,10,10
1,2,def,11,10,10
1,2,ghi,11,10,10
1,2,jkl,11,10,10
3,4,abc,12,12,11
3,4,def,12,12,11
3,4,ghi,12,12,11
3,4,jkl,12,12,11

我可以读取整个数据,但无法获得这样的输出。请指导我如何实现这一目标。

假设您在阅读 excel 文件后有这样的列表:

file_content = [
      ['1,2', 'abc,def,ghi,jkl', 11, 10, 10], 
      ['3,4', 'abc,def,ghi,jkl', 12, 12, 11]
]

实现您的目标的一种方法是遍历第 2 列的每个值,用逗号和 'rebuilt' 整行分隔。像这样:

output = list()

for row in file_content:
    for elt in row[1].split(','):
        # handle values of column 1 which are also coma separated
        tmp = [int(x) for x in row[0].split(',')
        # append one value of column 2
        tmp.append(elt)
        # merge with the end of the row
        tmp += row[2:]

        output.append(tmp)

编辑:

要阅读您的 excel 文件,您应该使用 pandas library 并按如下方式调整上面的代码:

import pandas

df = pandas.read_excel('yourfile.xlsx', header=None)
output = list()

for idx, row in df.iterrows():
    for elt in row[1].split(','):
        tmp = [int(x) for x in row[0].split(',')]
        tmp.append('elt')
        tmp += list(row[2:])
        output.append(tmp)