如何使用python在CSV文件中拆分合并单元格

2024-09-29 17:17:25 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有方法可以使用python拆分/取消合并CSV文件中的单元格?我想要的解释如下-

enter image description here

结果应该是一个包含以下条目的新CSV文件-

enter image description here

文本版本看起来有点像这样:

Column1,Column2,Column3,Column4,Column5,
A,A1,A11,A111,A1111,
B,B1,B11,B111,B1111,
,,,,B1112,
,,,,B1113,
,,,,B1114,
,,,,,
,,,,,


Column1,Column2,Column3,Column4,Column5,
A,A1,A11,A111,A1111,
B,B1,B11,B111,B1111,
B,B1,B11,B111,B1112,
B,B1,B11,B111,B1113,
B,B1,B11,B111,B1114,
,,,,,

我知道有一个解决方案可以取消合并excel工作簿,但我还没有找到一种方法来处理CSV文件。任何帮助都将不胜感激。在


Tags: 文件csv方法a1b1column1b11column2
2条回答

当然pandas是正确的答案。不管怎样,这里有一个非熊猫的解决方案:

import csv
from itertools import izip_longest

with open('input.csv') as input_file:
    input_file = csv.reader(input_file)
    with open('output.csv', 'w') as output_file:
        output_file = csv.writer(output_file)

        previous_row = []
        for row in input_file:
            if any(row):
                row = [a or b for a,b in izip_longest(row, previous_row, fillvalue='')]
            previous_row = row
            output_file.writerow(row)

只需使用^{}即可完成:

d = pandas.read_csv('your_file.csv')
d.fillna(method='ffill', inplace=True)
d.to_csv('new_file.csv', index=False)

基本上,这只是用最近的实际值向前填充每列中的空单元格。在

相关问题 更多 >

    热门问题