Ich muss CSV-Dateien Book1 und Book2. Die Spalten in Book1 sind A, B, C, D, E
und in Book2 sind A, B, E, H.
Ich möchte Book2 so ändern, dass es nur die Spaltennamen enthält, die mit Book1 und allen zusätzlichen in Book1 vorhanden sind. Die Dateien sind:Vergleichen Sie zwei CSV-Dateien und fügen Sie Spalten hinzu, die in beiden nicht üblich sind
Mappe1
A B C D E
10.12.0.1 a 35 0 11
10.12.0.1 b 35 1 10
107.77.87 a 35 0 101
Book2:
A B E H
9.81.2 b 10 w
10.15.32 b 100 w
11.16.5 b 101 w
Nach der Änderung der letzte Book2 wird: Book2_final:
A B C D E
9.81.2 b 10
10.15.32 b 100
11.16.5 b 101
Ich habe versucht, die folgenden:
import pandas
a= open('input_test.txt','r')
csv1 = pandas.read_csv('Book2.csv',dtype='unicode')
inserted_cols = a.read().split(',')
csv1[inserted_cols].to_csv('Book2_test.csv',index=False)
wobei die Datei 'input_test.txt'
die Spalten von Book1 in der gleichen Reihenfolge enthält, getrennt durch Kommas. Aber ich bekomme Fehler:
KeyError: "['C' 'D' 'E\\n'] not in index"
Kann nicht herausfinden, was falsch ist.Neu zu Python.
Sie wollen keine der Aufzeichnungen (IP addrs) in Mappe1 im Book2_final sein? Wo erhalten Sie die Werte für die Spalte E, die in Book2_final eingegeben werden soll, wenn sie in Book1 nicht vorhanden sind? – aneroid
@aneroid, Book2 nimmt keine Werte von Book1. Ich brauche nur die zusätzlichen Spaltennamen in Book1, um in Book2 zu sein, und entferne, was auch immer der zusätzliche Spaltenname in Book2 ist. In diesem Fall funktioniert die Spalte H –