Ich habe zwei Datensätze. Die erste ist, wie folgt aus:Python 3.5 kombinieren zwei CSV durch die Anpassung mehrerer Spalten
data file:
Column 1, Column 2, Column 3, Column 4, Column 5, Column 6
1111111, 2222222, 3333333, 44444444, 55555555, 666666666
0000000, 77777777, 8888888, 99999999, 10101010, 121212121
3333333, 55555555, 9999999, 88888888, 22222222, 111111111
Die zweite Datei ist wie folgt:
descriptors file:
Column 1, Column 2, Column 3
11111111,, this is a descriptor
,777777777, this is a descriptor again
99999999, , last descriptor
Was ich will, ist wie folgt:
Column 1, Column 2, Column 3, Column 4, Column 5, Column 6, Column 7
1111111, 2222222, 3333333, 44444444, 55555555, 666666666, this is a descriptor
0000000, 77777777, 8888888, 99999999, 10101010, 121212121, this is a descriptor again
3333333, 55555555, 9999999, 88888888, 22222222, 111111111
Ich habe den folgenden Code, von Foren, Ich habe für meine Verwendung manipuliert:
import csv
with open('descriptors file.CSV', 'r') as first_file:
reader = csv.reader(first_file)
first_header = next(reader, None)
file_information = {row[0]: row for row in reader}
with open('data file.CSV', 'r') as second_file:
with open('final results.csv', 'w', newline='') as outfile:
reader = csv.reader(second_file)
second_header = next(reader, None)
writer = csv.writer(outfile)
writer.writerow(second_header[:6] + first_header[2:])
for row in reader:
if row[0] not in file_information:
continue
newrow = row[0:] + file_information[row[0]]
writer.writerow(newrow)
Meine Probleme sind wie folgt: 1). Ich möchte zwischen Spalten 0 und 1 (1 und 2) passen, ich passe nicht zwischen 2 Spalten; nur eine 2). Die Ergebnisse enthalten keine Leerzeilen. Wenn beispielsweise in der Deskriptordatei, die in der Datendatei übereinstimmt, nichts gefunden wird, würde ich die Daten lieber in der Datendatei behalten, anstatt sie wegzuwerfen. Die Datendatei sollte um die Deskriptordatei erweitert und nicht reduziert werden.
3). Ich kann nicht herausfinden, wie sich nur auf die Deskriptoren Spalte schreiben, nicht die gesamte 3 Spalten in den Deskriptoren
Wie viele Zeichenfolgen in data_file und descriptors_file? – BaZZiliO
gibt es Hunderte von Zeilen in der Datendatei und 1500 oder so in der Beschreibungsdatei – james
bin ich richtig, dass in beiden Dateien weniger als 10000 Zeilen? und Beschreibungsdatei länger, als data_file? Ich denke, data_file sollte länger sein. – BaZZiliO