Python CSV transpose data in one column to rows -
मेरे पास केवल पहले कॉलम में डेटा युक्त एक सीएसवी फाइल है,
मैं <हर हर पंक्ति को दूसरी खाली सीएसवी फ़ाइल में स्थानांतरित करने के लिए अजगर का उपयोग करना चाहता हूं < / Strong>, उदाहरण के लिए, पंक्ति 1 से पंक्ति 4 को पहले पंक्ति में ट्रांस्फ़ॉर्म किया गया; फिर दूसरी पंक्ति, ... आदि के लिए पंक्ति 5 से पंक्ति 8 को ट्रांसपोज़ किया गया, और अंत में हम सीएसवी फ़ाइल में 5 * 4 मैट्रिक्स प्राप्त कर सकते हैं।
यह कैसे करने के लिए एक स्क्रिप्ट लिखना है? कृपया मुझे कोई संकेत और सुझाव दें, धन्यवाद।
मैं विंडोज 8.1 x 64 के तहत अजगर 2.7.4 का उपयोग कर रहा हूं।
अपडेट # 1
मैं थोरफ़ेय द्वारा प्रदान किए गए निम्नलिखित कोड का उपयोग करता हूं,
आयात सिस्टम, ओएस ओएससीडी ('सी: \ यूज़र्स \ हैनज \ डेस्कटॉप') प्रिंट ओएसएटीएसीडीडी ( ) के रूप में ([i.rstrip ()] + नक्शा (str.rstrip, के लिए) के रूप में open_file के रूप में open_file के रूप में open ("test_csv.csv") के साथ itertools आयात के साथ इस्त्लाइस आयात करें ("आउटपुट.csv", "w" इन_आईफ़, 3)) में I के लिए in_f: आउट_फ़ाइल.लिखित ("\ t" .जोइंड (रेखा) + "\ n") इनपुट सीएसवी फ़ाइल है, < / p>
और परिणाम है,
यह वही नहीं है जो मैं चाहता हूं। < / p>
आप इस तरह की सूची समझ का उपयोग कर सकते हैं
डेटा = श्रेणी (20 ) प्रिंट डेटा # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1 9] प्रिंट [ # [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 9] के लिए मैं [x: 0, लेन (डेटा) 4)] में डेटा [i: i + 4] 10, 11], [12, 13, 14, 15], [16, 17, 18, 1 9]] के बजाय 4 , आप चाहते हो सकता है 56 का उपयोग करने के लिए।
चूंकि आप फ़ाइल से पढ़ने की योजना बना रहे हैं, हो सकता है कि आप ऐसा कुछ करना चाहें
itertools से आयात करें islice in_file के रूप में खुले ("Input.txt") के साथ: प्रिंट [[इंट (रेखा)] + नक्शा (in_file में पंक्ति के लिए int, islice (in_file, 3)) संशोधित करें अपडेट किए गए प्रश्न के अनुसार, आईटीआरटीओल्ट से आयात किए जाने वाले आईएसएलआईसी से ("Input.txt") आईएनएस के रूप में, ओपन ("आउटपुट.txt", "डब्ल्यू") As_file के रूप में: (i.rstrip ()] + मैप (str.rstrip, islice (in_f, 3)) में लाइन के लिए in_f में: out_file.write ("\ t" .join (line) + "\ N ")
संपादित करें: चूंकि आप अल्पविराम से अलग किए गए मान खोज रहे हैं, आप , के साथ लाइनों में शामिल हो सकते हैं, जैसे < / P>
out_file.write (",। शामिल हों (पंक्ति) +" \ n ")
Comments
Post a Comment