У мене є два файли 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 з файлу відображення у файл даних.