Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich einer CSV-Datei eine neue Spalte hinzu und behalte dabei vorhandene Werte bei?

Wie füge ich einer CSV-Datei eine neue Spalte hinzu und behalte dabei vorhandene Werte bei?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-21 21:12:02302Durchsuche

How to Add a New Column to a CSV File Preserving Existing Values?

Hinzufügen einer neuen Spalte zu einer CSV-Datei

Dieser Artikel befasst sich mit dem Problem des Hinzufügens einer neuen Spalte zu mehreren CSV-Dateien, die in einer Datei vorhanden sind Format mit zwei vorhandenen Spalten mit der Bezeichnung „Name“ und „Code“. Die gewünschte Ausgabe besteht darin, eine dritte Spalte mit dem Namen „Berry“ hinzuzufügen und ihre Werte mit den „Name“-Werten zu füllen.

Ein erstes Python-Skript, das die CSV-Bibliothek nutzte, versuchte, an jede Zeile einen „Berry“-Wert anzuhängen. Es ist jedoch ein Fehler aufgetreten, bei dem nur die neue Spalte mit „Berry“-Werten gefüllt wurde.

Die Lösung

Der im Antwortabschnitt vorgestellte empfohlene Code bietet eine umfassende Lösung:

  • Lesen Sie die erste Zeile aus der Eingabe-CSV-Datei und hängen Sie den Header „berry“ daran an.
  • Durchlaufen Sie die verbleibenden Zeilen und hängen Sie an jede den ersten Wert (den Namen) an Zeile.
  • Alle geänderten Zeilen in die Ausgabe-CSV-Datei schreiben.

Implementierung

Hier ist ein überarbeitetes und verbessertes Python-Skript basierend auf bereitgestellte Lösung:

<code class="python">import csv

with open('input.csv', 'r') as infile, open('output.csv', 'w') as outfile:
    reader = csv.reader(infile)
    header = next(reader)
    header.append('Berry')
    writer = csv.writer(outfile)
    writer.writerow(header)

    for row in reader:
        row.append(row[0])
        writer.writerow(row)</code>

Dieses Skript hängt erfolgreich die neue „Berry“-Spalte an jede Zeile an, gefüllt mit den entsprechenden „Name“-Werten.

Zusätzliche Überlegungen

  • Beachten Sie, dass das standardmäßige Zeilenendezeichen in der CSV-Bibliothek von Python „rn“ ist, was zu doppelten Abständen in Ausgabedateien führen kann. Um einen anderen Zeilenabschluss anzugeben, verwenden Sie beim Schreiben der CSV-Datei den Parameter lineterminator.
  • Erwägen Sie die Verwendung einer Liste, um alle geänderten Zeilen zu speichern und sie in einem Vorgang mit writerows zu schreiben. Dieser Ansatz kann bei großen Dateien effizienter sein.
  • Die with-Anweisung kann für mehrere Dateien in einer Zeile verwendet werden, wie im folgenden Beispiel gezeigt:

    <code class="python">with open('input.csv', 'r') as infile, open('output.csv', 'w') as outfile:
      # file operations</code>

Das obige ist der detaillierte Inhalt vonWie füge ich einer CSV-Datei eine neue Spalte hinzu und behalte dabei vorhandene Werte bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn