Python 3.5从列中提取数字到新列

时间:2016-05-24 12:12:08

标签: python csv extract digit

我正在尝试在CSV中的columun中提取数字的最后5位数字,并将其添加为附加列。我的实际数据中有更多列,并且有数千行数字。例如:

Column 1, Column 2, Column 3, Column 4
3333333, 1234567, 4444444, 5555555
7777777, 7654321, 5555555, 6666666

我希望它是:

   Column 1, Column 2, Column 3, Column 4, Column 5
   33333333, 1234567,  44444444, 55555555, 34567
   77777777, 7654321,  55555555, 66666666, 54321

到目前为止,我已尝试过findall的迭代,并认为正则表达式将提供最佳解决方案。我可以提取专栏,而不是我想要做的,但到目前为止,这是我已经得到的。

1 个答案:

答案 0 :(得分:1)

import csv

print('Column 1, Column 2, Column 3, Column 4, Column 5')
with open('data1', 'r') as f:
    reader=csv.reader(f)
    next(reader)
    for row in reader:
        print(row[0], row[1], row[2], row[3], row[1][-5:], sep=', ')

这是输出:

$ cat data1 
Column 1, Column 2, Column 3, Column 4
3333333, 1234567, 4444444, 5555555
7777777, 7654321, 5555555, 6666666
$ python3 a.py 
Column 1, Column 2, Column 3, Column 4, Column 5
3333333,  1234567,  4444444,  5555555, 34567
7777777,  7654321,  5555555,  6666666, 54321