「データ」と「マッピング」の2つのCSVファイルがあります。
- : 'マッピング'ファイルには、4つの列があり
Device_Name
、GDN
、Device_Type
、とDevice_OS
。4つの列すべてにデータが入力されます。 - 「データ」ファイルにはこれらの同じ列
Device_Name
があり、列が設定され、他の3つの列は空白になっています。 - 私は自分のPythonコードは両方のファイルを開き、各したい
Device_Name
データファイルで、そのマッピングGDN
、Device_Type
およびDevice_OS
マッピングファイルから値を。
2つの列しか存在しない場合(1つはマップする必要がある)にdictを使用する方法を知っていますが、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
上の2つのデータフレームを直接作成することができますDevice_Name
。
Device_Name
列は両方のファイルのキーです。このキーで、Device_OS、GDN、およびDevice_Typeの値をマッピングファイルからデータファイルにマッピングします。