2015-09-12 7 views
10

तो मेरा google-f मुझे न्यायिक प्रतीत नहीं होता है जैसा कि एक छोटी सी प्रक्रिया होनी चाहिए।कॉलम ऑर्डर को संरक्षित करना - पायथन पांडो और कॉलम कंसैट

पायथन के लिए पांडों में मेरे पास 2 डेटासेट हैं, मैं उन्हें विलय करना चाहता हूं। यह .concat का उपयोग कर ठीक काम करता है। मुद्दा यह है कि .concat मेरे कॉलम को दोहराता है। डेटा पुनर्प्राप्ति बिंदु से, यह मामूली है। एक "मैं सिर्फ फाइल खोलना चाहता हूं और सबसे महत्वपूर्ण कॉलम देखना चाहता हूं" दृष्टिकोण, यह कष्टप्रद है।

File1.csv 
Name Username Alias1 
Tom  Tomfoolery TJZ 
Meryl MsMeryl  Mer 
Timmy Midsize  Yoda 

File2.csv 
Name Username Alias 1 Alias 2 
Bob  Firedbob Fire  Gingy 
Tom  Tomfoolery TJZ  Awww 

Result.csv 
    Alias1 Alias2 Name Username 
0 TJZ NaN  Tom  Tomfoolery 
1 Mer NaN  Meryl MsMeryl 
2 Yoda NaN  Timmy Midsize 
0 Fire Gingy Bob  Firedbob 
1 TJZ Awww  Tom  Tomfoolery 

परिणाम ठीक है, लेकिन डेटा-फ़ाइल में मैं काम कर रहा हूं जिसमें मेरे पास 1,000 कॉलम हैं। 2-3 सबसे महत्वपूर्ण अब मध्य में हैं। क्या इस तरह के खिलौने के उदाहरण में, मैं "उपयोगकर्ता नाम" को पहला कॉलम और "नाम" को दूसरे कॉलम के रूप में मजबूर कर सकता था, जो नीचे दिए गए मानों को स्पष्ट रूप से नीचे से नीचे रखता था।

एक साइड नोट के रूप में, जब मैं फ़ाइल में सहेजता हूं तो यह उस नंबरिंग को तरफ (0 1 2 0 1) बचाता है। अगर उसे रोकने के लिए एक तरीका है, तो यह अच्छा होगा। यदि नहीं, तो यह एक बड़ा सौदा नहीं है क्योंकि इसे हटाने के लिए एक त्वरित समाधान है।

धन्यवाद!

उत्तर

8

श्रेणीबद्ध DataFrame मान लिया जाये कि df है, तो आप स्तंभ की पुनर्व्यवस्था इस प्रकार कर सकते हैं:

important = ['Username', 'Name'] 
reordered = important + [c for c in df.columns if c not in important] 
df = df[reordered] 
print df 

आउटपुट:

 Username Name Alias1 Alias2 
0 Tomfoolery Tom TJZ NaN 
1  MsMeryl Meryl Mer NaN 
2  Midsize Timmy Yoda NaN 
0 Firedbob Bob Fire Gingy 
1 Tomfoolery Tom TJZ Awww 

संख्या [0, 1, 2, 0, 1] की सूची DataFrame का सूचकांक है। आउटपुट फ़ाइल में लिखे जाने से रोकने के लिए, आप index=False विकल्प to_csv() में उपयोग कर सकते हैं:

df.to_csv('Result.csv', index=False, sep=' ') 
संबंधित मुद्दे