ฉันมีไฟล์ CSV 2 ไฟล์: 'ข้อมูล' และ 'การทำแผนที่':
- ไฟล์ 'แมป' มี 4 คอลัมน์:
Device_Name,GDN, และDevice_TypeDevice_OSคอลัมน์ทั้งสี่นั้นบรรจุอยู่ - ไฟล์ 'ข้อมูล' มีคอลัมน์เดียวกันนี้โดยที่มี
Device_Nameคอลัมน์อยู่และอีกสามคอลัมน์ว่างเปล่า - ฉันต้องการรหัสหลามของฉันที่จะเปิดไฟล์ทั้งสองและสำหรับแต่ละ
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มา
หลังจากการค้นคว้าบางอย่างฉันคิดว่าฉันต้องสร้าง dict ที่ซ้อนกัน แต่ฉันไม่รู้ว่าจะทำอย่างไร
row[27] = x[row[11]]["Device_OS"]?
Device_Nameดัชนีแล้วคุณสามารถโดยตรงjoinทั้งสอง dataframes Device_Nameในดัชนีของพวกเขา
Device_Nameคอลัมน์เป็นกุญแจสำคัญในทั้งสองไฟล์ในคีย์นี้ฉันต้องการแมป Device_OS, GDN & Device_Type ค่าจากไฟล์การแมปไปยังไฟล์ข้อมูล