ठीक है मैंने यहां स्टैक ओवरफ़्लो पर कई धागे पढ़े हैं। मैंने सोचा कि यह मेरे लिए करना काफी आसान होगा लेकिन मुझे लगता है कि मुझे अभी भी अजगर का बहुत अच्छा ज्ञान नहीं है। मैंने How to combine 2 csv files with common column value, but both files have different number of lines पर स्थित उदाहरण की कोशिश की और यह सहायक था लेकिन मेरे पास अभी भी ऐसे परिणाम नहीं हैं जिन्हें मैं प्राप्त करने की उम्मीद कर रहा था।2 सीएसवी फाइलों को विलय करना
अनिवार्य रूप से मेरे पास एक सामान्य पहले कॉलम के साथ 2 सीएसवी फाइलें हैं। मैं 2. यानी
filea.csv
title,stage,jan,feb darn,3.001,0.421,0.532 ok,2.829,1.036,0.751 three,1.115,1.146,2.921
fileb.csv
title,mar,apr,may,jun, darn,0.631,1.321,0.951,1.751 ok,1.001,0.247,2.456,0.3216 three,0.285,1.283,0.924,956
output.csv (वह नहीं जिसका मैं हो रही है, लेकिन मैं क्या चाहते हैं)
मर्ज करना चाहते हैंtitle,stage,jan,feb,mar,apr,may,jun darn,3.001,0.421,0.532,0.631,1.321,0.951,1.751 ok,2.829,1.036,0.751,1.001,0.247,2.456,0.3216 three,1.115,1.146,2.921,0.285,1.283,0.924,956
output.csv (आउटपुट जो मुझे वास्तव में मिला)
title,feb,may ok,0.751,2.456 three,2.921,0.924 darn,0.532,0.951
कोड मैं कोशिश कर रहा था:
'''
testing merging of 2 csv files
'''
import csv
import array
import os
with open('Z:\\Desktop\\test\\filea.csv') as f:
r = csv.reader(f, delimiter=',')
dict1 = {row[0]: row[3] for row in r}
with open('Z:\\Desktop\\test\\fileb.csv') as f:
r = csv.reader(f, delimiter=',')
#dict2 = {row[0]: row[3] for row in r}
dict2 = {row[0:3] for row in r}
print str(dict1)
print str(dict2)
keys = set(dict1.keys() + dict2.keys())
with open('Z:\\Desktop\\test\\output.csv', 'wb') as f:
w = csv.writer(f, delimiter=',')
w.writerows([[key, dict1.get(key, "''"), dict2.get(key, "''")] for key in keys])
किसी भी मदद की बहुत सराहना कर रहा है।
क्या आप एक सरल तरीके से जो चाहते हैं उसका वर्णन कर सकते हैं ?, शायद कुछ ऐसा कह रहा है: मैं महीने कॉलम को विलय करना चाहता हूं, फ़ाइलएक्स – juanpastas