如何将每个细胞转移到不同的形式,然后将它们分离成2个细胞?CSV python



我有一个number.csv文件,每个单元格包含一个数字。例如,它看起来是这样的。。

    0,1,2 
   -1,0,1
    1,2,-1

然后我想根据我的规则将每个数字转换为某个名称。

   # The rule is: 
   # 0 for AA
   # 1 for AB
   # 2 for BB
   # -1 for 00 (that's double zero)

因此,我会得到这样的东西。。。

   AA,AB,BB
   00,AA,AB
   AB,BB,00

然后,我必须将每个单元格划分为两个单元格,并写入一个新的result.csv文件。最后看起来。。。。

   A,A,A,B,B,B
   0,0,A,A,A,B
   A,B,B,B,0,0  

我只知道如何将每个数字替换为某个名称(例如0到AA),然后我坚持如何将AA划分为a,每个单元格的a,并将每一行分隔到下一行。

有人知道如何通过csv模块解决这个问题,甚至知道用更聪明的方法来实现这个问题吗?

非常感谢

使用VBA

Sub user3058889()
    Dim d1 As String, s2 As String
    s1 = "C:TestFolderinput.csv"
    s2 = "C:TestFolderoutput.csv"
    Close #1
    Close #2
    Open s1 For Input As #1
    Open s2 For Output As #2
    Do While Not EOF(1)
            Line Input #1, textline
            textline = Replace(textline, "-1", "z")
            textline = Replace(textline, "0", "A,A")
            textline = Replace(textline, "1", "A,B")
            textline = Replace(textline, "2", "B,B")
            textline = Replace(textline, "z", "0,0")
            Print #2, textline
    Loop
    Close #1
    Close #2
End Sub
with open(r'G:number.csv', 'r') as f:  # read
    content = f.read()
    with open(r'G:number-post.csv', 'wb') as fh: # write
        fh.write(content.replace('-1','O,O').replace('0','A,A').replace('1','A,B').replace('2','B,B').replace('O','0'))

只需将上面的文件名替换为相应的文件名即可。

最新更新