আমার কাছে দুটি সিএসভি ফাইল রয়েছে: 'ডেটা' এবং 'ম্যাপিং':
- 'ম্যাপিং' ফাইল 4 টি কলাম আছে:
Device_Name,GDN,Device_Type, এবংDevice_OS। চারটি কলামই জনবহুল। - 'ডেটা' ফাইলটিতে একই কলাম রয়েছে,
Device_Nameকলাম পপুলেটে এবং অন্যান্য তিনটি কলাম ফাঁকা রয়েছে। - আমি আমার পাইথন কোড উভয় ফাইল এবং প্রত্যেকের জন্য খুলতে চান
Device_Name, তথ্য ফাইলে তার মানচিত্রGDN,Device_TypeএবংDevice_OSম্যাপিং ফাইল থেকে মান।
আমি যখন মাত্র 2 টি কলাম উপস্থিত থাকি তখন ডিকটি কীভাবে ব্যবহার করতে হয় তা আমি জানি (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কলাম হ'ল উভয় ফাইলে চাবিকাঠি, এই কীতে আমি ডিভাইস_এস, জিডিএন এবং ডিভাইস_টাইপ মানগুলি ম্যাপিং ফাইল থেকে ডেটা ফাইলে মানচিত্র করতে চাই।