使用 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)
我必须根据列数据解析 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)