分割行,并在每行中保留前几列

时间:2019-01-17 08:36:03

标签: python

我试图在每次出现逗号时创建一个新行,但是将前几列保留在新行中。为了清楚起见:

A    B    C,    D,
E    F    Z
G    H    I,   J,

应该像最后一样:

A    B    C
A    B    D
E    F    Z
G    H    I
G    H    J

我是python的新手,但是我正在尝试,所以我知道split对我来说是最好的,但是我不知道如何保留前几列(实际上要保留7列)以及每次出现的次数逗号,在前7列仍在其中创建新行

到目前为止,我已经尝试过:

lines = df.split(",")
for column in lines:
    print(column)

这会给我:

A    B    C
D
E    F    Z
G    H    I
J

我知道的不多,但这只是一个开始:)

1 个答案:

答案 0 :(得分:0)

import copy
example = 'A\tB\tC,\tD,\nE\tF\tZ\nG\tH\tI,\tJ,'

lines = example.split('\n')
new_text = ''
for line in lines:
    line = line.rstrip(',').split('\t')
    new_lines = [[]]
    index = 0
    for element in line:
        if ',' in element:
            new_lines.append(copy.deepcopy(new_lines[index]))
            new_lines[index].append(element.rstrip(','))
            index += 1
        else:
            new_lines[index].append(element)

    for new_line in new_lines:
        new_text += '\t'.join(new_line)+'\n'

print(new_text)

这给出了

A   B   C
A   B   D
E   F   Z
G   H   I
G   H   J