2016-05-24 11 views
-2

Ich versuche, die letzten 5 Ziffern einer Zahl in einer Spalte in einer CSV zu extrahieren und fügen Sie es als eine zusätzliche Spalte hinzu. Es gibt mehr Spalten in meinen tatsächlichen Daten, und es gibt Tausende von Zahlenreihen. Zum Beispiel:Python 3.5 Ziffern aus Spalte in neue Spalte extrahieren

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

und ich will es sein:

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

So habe ich versucht, Iterationen von findall weit und denken, dass regex die beste Lösung bieten wird. Ich kann die Spalte extrahieren, nicht genau was ich machen will, aber soweit ist das soweit ich gekommen bin.

+0

, was Sie bisher bekommen haben? Haben Sie es geschafft, Daten aus einer Spalte zu extrahieren? ein bisschen genauer sein. – quemeraisc

+0

Bitte zeigen Sie uns Ihren Code, es ist nicht schwer, nur bestimmte Werte aus einer Zeichenkette oder int auszuwählen. aber wir müssen sehen, wie Sie Ihre Daten an erster Stelle extrahieren, um ein klareres Verständnis dessen zu bekommen, was Sie brauchen. – WildCard

+0

QuemeraSc und WildCard, ja, ich kann Spalten verschieben und Header hinzufügen, aber ich konnte nicht herausfinden, wie man nur den letzten Teil einer Spalte extrahiert. Ritesht93's Antwort hat super funktioniert. Danke noch einmal. – james

Antwort

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=', ') 

hier ist die Ausgabe:

$ 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, Ich habe dein Beispiel benutzt und es funktionierte genau wie nötig. Ich hatte einige andere Dinge versucht, aber sie haben nicht funktioniert. Danke für die schnelle, zuverlässige Antwort. – james

Verwandte Themen