У мене є два файли CSV: "Дані" та "Картографування":
- Файл 'Mapping' має 4 колонки:
Device_Name,GDN,Device_Type, іDevice_OS. Усі чотири стовпці заповнені. - Файл "Дані" містить ці самі стовпці,
Device_Nameстовпці яких заповнені, а інші три стовпці порожні. - Я хочу , щоб мій код Python , щоб відкрити обидва файли і для кожного
Device_Nameв файлі даних, карта йогоGDN,Device_TypeіDevice_OSзначення з файлу зіставлення.
Я знаю, як використовувати dict, коли присутні лише 2 стовпчики (1 потрібен для картографування), але я не знаю, як це досягти, коли потрібно скласти 3 стовпчики.
Далі йде код, за допомогою якого я намагався здійснити картування 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)
Це повертається Attribute Error.
Після деяких досліджень я думаю, що мені потрібно створити вкладений малюнок, але я не маю уявлення, як це зробити.
row[27] = x[row[11]]["Device_OS"]?
Device_Nameіндекс, тоді ви можете безпосередньо joinдві рамки даних на їх індекс Device_Name.
Device_Nameстовпчик - це ключ в обох файлах, за допомогою цього ключа я хочу зіставити значення Device_OS, GDN та Device_Type з файлу відображення у файл даних.