如何在python中将分号分隔的列值拆分为行?

2024-04-25 03:31:01 发布

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

我有一个包含以下数据的电子表格。最后一列包含分号分隔的值,我想将其转换为多行,同时复制前三列的值。你知道吗

   A,B,C,1
   D,E,F,1;2;3
   G,H,I,1;2

我希望输出为:

   A,B,C,1
   D,E,F,1
   D,E,F,2
   D,E,F,3
   G,H,I,1
   G,H,I,2

我该怎么做?你知道吗


Tags: 数据电子表格
1条回答
网友
1楼 · 发布于 2024-04-25 03:31:01

我就照你提供的去做。你知道吗

my_str = """A,B,C,1
D,E,F,1;2;3
G,H,I,1;2"""

我首先根据换行符拆分'my\ str',然后分号-即

my_list = [strn.split(';') for strn in my_str.split('\n')]

现在我的清单看起来像

[['A,B,C,1'], ['D,E,F,1', '2', '3'], ['G,H,I,1', '2']]

这可能不是最优雅的解决方案

for i, sub_list in enumerate(my_list):
    if len(sub_list) > 1:
        for j in range(1, len(sub_list)):
            my_list[i][j] = my_list[i][0][:-1] + my_list[i][j]

最后,我的清单如下所示:

[['A,B,C,1'], ['D,E,F,1', 'D,E,F,2', 'D,E,F,3'], ['G,H,I,1', 'G,H,I,2']]

然后,把它打印出来。例如

for sub_list in my_list:
    for strn in sub_list:
        print(strn)

你得到了想要的答案

A,B,C,1
D,E,F,1
D,E,F,2
D,E,F,3
G,H,I,1
G,H,I,2

编辑以将此输出写入文件:

with open('new_test_file.txt', 'w') as f:
    for sub_list in my_list:
        for strn in sub_list:
            f.write(strn+'\n')

相关问题 更多 >