2016-05-24 51 views
-2

我試圖提取CSV中columun中數字的最後5位數字,並將它作爲附加列添加。我的實際數據中有更多列,並且有數千行數字。例如:Python 3.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的到目前爲止,我已經嘗試迭代,並認爲正則表達式是要提供最佳的解決方案。我可以提取列,不完全是我想要做的,但到目前爲止,就我所知。

+0

你有什麼這麼遠嗎?您是否設法從列中提取數據?更具體一點。 – quemeraisc

+0

請向我們展示您的代碼,從字符串或int中僅選擇某些值並不困難。但我們需要首先了解您如何提取數據,以便更清楚地瞭解您的需求。 – WildCard

+0

Quemeraisc和WildCard,是的,我可以移動列和添加標題,但我無法弄清楚如何只提取列的最後一部分。 Ritesht93的答案效果很好。再次感謝。 – james

回答

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 
+0

Ritesht93,我用你的例子,它完全按照需要工作。我一直在嘗試一些其他的東西,但他們沒有工作。感謝您提供快速,可靠的答案。 – james

相關問題