首页 > 解决方案 > 根据csv中的空格分隔值写入新行

问题描述

我有一个 csv 文件,如下所示:

column1 column2   column3                        
  a       b       value1 value2 value3
  a       z       value4 value5 value6
  s       t       value7  

我想用空格分隔'column3',以便该列只有一个值。该行的其余部分将被重复。这是我想获得的输出示例:

column1 column2    column3  
  a       b        value1 
  a       b        value2 
  a       b        value3

请注意,我找到了类似问题的答案,但使用了我不想使用的 pandas。

任何解决方案都会有所帮助。

谢谢,

标签: pythoncsv

解决方案


如果您真的想“手动”执行此操作,您可以column3按空格分隔,并为每个值创建具有相同column1column2值的行。

例子:


csv_text = """
column1,column2,column3                        
a,b,value1 value2 value3
a,z,value4 value5 value6
s,t,value7
"""

result = ["column1,column2,column3"]
for line in csv_text.splitlines(keepends=False)[2:]:
    col1, col2, col3 = line.split(",")
    for val in col3.split(" "):
        result.append(",".join((col1, col2, val)))


print("\n".join(result))

输出:

column1,column2,column3
a,b,value1
a,b,value2
a,b,value3
a,z,value4
a,z,value5
a,z,value6
s,t,value7

(您当然可以将其写入文件或您需要的任何其他内容,这里的重点是循环体)


推荐阅读