Ich habe 2 CSV-Dateien: 'Daten' und 'Zuordnung':
- 'Mapping' Datei hat vier Spalten:
Device_Name
,GDN
,Device_Type
, undDevice_OS
. Alle vier Spalten werden ausgefüllt. - Die 'Daten'-Datei enthält dieselben Spalten, wobei die
Device_Name
Spalte ausgefüllt und die anderen drei Spalten leer sind. - Ich mag , dass mein Python - Code beiden Dateien öffnen und für jedes
Device_Name
in der Datendatei, Karte seinenGDN
,Device_Type
undDevice_OS
Wert aus der Mapping - Datei.
Ich weiß, wie man dict verwendet, wenn nur 2 Spalten vorhanden sind (1 muss zugeordnet werden), aber ich weiß nicht, wie dies erreicht werden soll, wenn 3 Spalten zugeordnet werden müssen.
Es folgt der Code, mit dem ich versucht habe, die Zuordnung von zu erreichen Device_Type
:
x = dict([])
with open("Pricing Mapping_2013-04-22.csv", "rb") as in_file1:
file_map = csv.reader(in_file1, delimiter=',')
for row in file_map:
typemap = [row[0],row[2]]
x.append(typemap)
with open("Pricing_Updated_Cleaned.csv", "rb") as in_file2, open("Data Scraper_GDN.csv", "wb") as out_file:
writer = csv.writer(out_file, delimiter=',')
for row in csv.reader(in_file2, delimiter=','):
try:
row[27] = x[row[11]]
except KeyError:
row[27] = ""
writer.writerow(row)
Es kehrt zurück Attribute Error
.
Nach einigen Recherchen denke ich, dass ich ein verschachteltes Diktat erstellen muss, aber ich habe keine Ahnung, wie das geht.
row[27] = x[row[11]]["Device_OS"]
?
Device_Name
den Index erstellen und dann join
die beiden Datenrahmen direkt in ihren Index aufnehmen Device_Name
.
Device_Name
Die Spalte ist der Schlüssel in beiden Dateien. Auf diesem Schlüssel möchte ich Device_OS-, GDN- und Device_Type-Werte von der Zuordnungsdatei zur Datendatei zuordnen.