शीर्ष लेख पंक्ति को पंडों से कैसे जोड़ा जाए DataFrame


166

मैं एक सीएसवी फ़ाइल में पढ़ रहा हूँ pandas। यह सीएसवी चार कॉलम और कुछ पंक्तियों की फाइल बनाता है, लेकिन इसमें हेडर पंक्ति नहीं है, जिसे मैं जोड़ना चाहता हूं। मैं निम्नलिखित कोशिश कर रहा हूँ:

Cov = pd.read_csv("path/to/file.txt", sep='\t')
Frame=pd.DataFrame([Cov], columns = ["Sequence", "Start", "End", "Coverage"])
Frame.to_csv("path/to/file.txt", sep='\t')

लेकिन जब मैं कोड लागू करता हूं, मुझे निम्नलिखित त्रुटि मिलती है:

ValueError: Shape of passed values is (1, 1), indices imply (4, 1)

वास्तव में त्रुटि का क्या अर्थ है? और मेरी सीएसवी फ़ाइल / पांडा डीएफ में हेडर पंक्ति जोड़ने के लिए अजगर में एक साफ तरीका क्या होगा?


यहां आपके प्रश्न की एक अलग व्याख्या है: एक मल्टीफ़ंडेक्स बनाने के लिए मौजूदा डेटाफ़्रेम में एक और हेडर जोड़ें।
cs95

जवाबों:


257

आप namesसीधे में उपयोग कर सकते हैंread_csv

नाम: सरणी की तरह, डिफ़ॉल्ट कोई भी उपयोग करने के लिए स्तंभ नामों की सूची। यदि फ़ाइल में कोई हेडर पंक्ति नहीं है, तो आपको स्पष्ट रूप से हेडर = कोई नहीं पास करना चाहिए

Cov = pd.read_csv("path/to/file.txt", 
                  sep='\t', 
                  names=["Sequence", "Start", "End", "Coverage"])

9
आप हंसेंगे। मैंने वास्तव में यह कोशिश की थी, लेकिन आप इस बात से अनजान थे कि आपको नामों के चारों ओर चौकोर कोष्ठक लगाने होंगे। जो तार्किक रूप से पूर्वव्यापी है। धन्यवाद!
sequence_hard

कोई चिंता नहीं, हमने उन सभी मूर्खतापूर्ण गलतियों को किया है। मैं उनका भी दोषी हूं।
Leb

@ ठीक है, मुझे भी यही समस्या थी और मैंने आपके समाधान की कोशिश की। मुझे टेबल के लिए हेडर मिला लेकिन पहली पंक्ति को भी उसी हेडर नामों से बदल दिया गया। अब मैं क्या करूँ?
007mrviper

यह मेरे डेटा में अधिक कॉलम जोड़ता है, सभी NaNविशेषताओं के साथ । ऐसा इसलिए था क्योंकि मेरा विभाजक एक खाली जगह है।
सलाहुद्दीन

128

वैकल्पिक रूप से आप सीएसवी के साथ पढ़ सकते हैं header=Noneऔर फिर इसके साथ जोड़ सकते हैं df.columns:

Cov = pd.read_csv("path/to/file.txt", sep='\t', header=None)
Cov.columns = ["Sequence", "Start", "End", "Coverage"]

15
col_Names=["Sequence", "Start", "End", "Coverage"]
my_CSV_File= pd.read_csv("yourCSVFile.csv",names=col_Names)

यह किया जा रहा है, बस इसे [अच्छी तरह से मुझे पता है, यू पता है कि साथ की जाँच करें। फिर भी...

my_CSV_File.head()

आशा है कि यह मदद करता है ... चीयर्स


कृपया {}बटन के साथ अपना कोड प्रारूपित करें। इंडेंटेशन मायने रखता है।
श्री टी।

7

अपने कोड आप बस को बदल सकते हैं ठीक करने के लिए [Cov]करने के लिए Cov.values, के पहले पैरामीटर pd.DataFrameएक बहु-आयामी हो जाएगा numpyसरणी:

Cov = pd.read_csv("path/to/file.txt", sep='\t')
Frame=pd.DataFrame(Cov.values, columns = ["Sequence", "Start", "End", "Coverage"])
Frame.to_csv("path/to/file.txt", sep='\t')

लेकिन सबसे चतुर समाधान अभी भी और के pd.read_excelसाथ प्रयोग किया जाता है ।header=Nonenames=columns_list


जब हम कॉलम_लिस्ट देते हैं, तो क्या हम चयनित कॉलम के लिए डिफ़ॉल्ट मान जोड़ सकते हैं?
चिंतन गोत्रच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.