bir CSV sahip bir CSV dosyası gibi 2 sahip İki csv dosyası nasıl karşılaştırılır?
FLAGSTAFF AZ 50244.67 5.02 KA1_Podium_Garage_S FLAGSTAFF AZ 33752.13 3.38 KA1_Podium_Garage_S FLAGSTAFF AZ 11965.5 1.2 KA1_Podium_Garage_S FLAGSTAFF AZ 3966.48 0.4 KA1_Podium_Garage_S SEATTLE WA 12646.9 1.26 KA1_Podium_Garage_S SEATTLE WA 225053.92 22.51 KA1_Podium_Garage_S SEATTLE WA 23974.3 2.4 KA1_Podium_Garage_S SEATTLE WA 7036.4 0.7 KA1_Podium_Garage_S SEATTLE WA 3021.93 0.3 KA1_Podium_Garage_S
gibidir dosya1,
Alabama AL 1
Alaska AK 2
Arizona AZ 4
Arkansas AR 5
California CA 6
Colorado CO 8
Connecticut CT 9
SEATTLE WA 53
Şimdi CSV file2 CSV üçüncü sütun değeri eklemek gerekir
Bu gibi olmalıdır Örneğin, ikinci sütunkarşılaştırarak file1, ,
AZ kodu AZ, WA benim csv Dosya1 içinde olduğu her yerde 4 WA kodu 53 olduğu, kod
gibi görünmelidir My çıktı, İşteFLAGSTAFF AZ 50244.67 5.02 KA1_Podium_Garage_S 4
FLAGSTAFF AZ 33752.13 3.38 KA1_Podium_Garage_S 4
FLAGSTAFF AZ 11965.5 1.2 KA1_Podium_Garage_S 4
FLAGSTAFF AZ 3966.48 0.4 KA1_Podium_Garage_S 4
SEATTLE WA 12646.9 1.26 KA1_Podium_Garage_S 53
SEATTLE WA 225053.92 22.51 KA1_Podium_Garage_S 53
SEATTLE WA 23974.3 2.4 KA1_Podium_Garage_S 53
SEATTLE WA 7036.4 0.7 KA1_Podium_Garage_S 53
SEATTLE WA 3021.93 0.3 KA1_Podium_Garage_S 53
olduğunu
bir sütuna eklenen almalısınız denedim kod,
with open("/home/sumit/Desktop/CSV_FILE1.csv", "r") as f:
first = {rows[1]: rows[0:] for rows in list(csv.reader(f))}
# compare second csv and append Code
with open("CSVFILE2.csv", "r") as f1:
for row in csv.reader(f1):
if row[1] in first:
first[row[1]].append(row[2])
# convert dict back to list
merged = [(k,) + tuple(v) for k, v in first.items()]
# write list to output csv
with open("output.csv", "w") as f1:
csv.writer(f1).writerows(merged)
Çıktı, gibi alıyorum
AZ FLAGSTAFF AZ 44230.4 4.42 KA1_Podium_Garage_S 4
WA SEATTLE WA 45329.3 4.53 KA1_Podium_Garage_S 53
bir 'dict' sadece her kilit için bir değere sahip olabilir; Birden çok kez farklı değerler içeren bir anahtar eklemeyi denerseniz, yalnızca en son bir –
alacaktır Ben mantığınızı değiştirmenizi öneririm: ikinci CSV dosyanız yalnızca her durumun bir örneğine sahip gibi görünüyor. Bu csv ile anahtarlar: val çiftlerinin durum olduğu bir dict yapmak: numaralar sonra ilk csv boyunca yineleyin ve değerleri gerektiği gibi ekleyin. –