ฉันมีไฟล์ CSV 2 ไฟล์: 'ข้อมูล' และ 'การทำแผนที่':
- ไฟล์ 'แมป' มี 4 คอลัมน์:
Device_Name
,GDN
, และDevice_Type
Device_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 ค่าจากไฟล์การแมปไปยังไฟล์ข้อมูล