सहेजे गए सीएसवी में एक सूचकांक बनाने वाले पायथन / पंडों से कैसे बचें?


407

मैं फ़ाइल में कुछ संपादन करने के बाद एक फ़ोल्डर में एक सीएसवी को बचाने की कोशिश कर रहा हूं।

हर बार जब मैं pd.to_csv('C:/Path of file.csv')csv फ़ाइल का उपयोग करता है तो अनुक्रमणिकाओं का एक अलग कॉलम होता है। मैं इंडेक्स को सीएसवी पर प्रिंट करने से बचना चाहता हूं।

मैंने कोशिश की:

pd.read_csv('C:/Path to file to edit.csv', index_col = False)

और फ़ाइल को बचाने के लिए ...

pd.to_csv('C:/Path to save edited file.csv', index_col = False)

हालाँकि, मुझे अभी भी अवांछित सूचकांक कॉलम मिला है। जब मैं अपनी फ़ाइलों को सहेजता हूं तो मैं इससे कैसे बच सकता हूं?


59
index=Falseइसके बजाय की कोशिश करेंindex_col
जेफ

क्या हम इसे ms excel में भी इस्तेमाल कर सकते हैं?
नबीह इब्राहिम बवज़ीर

हाँ आप कर सकते हैंpd.to_excel(r'file.xlsx', index = False)
bfree67

index_colread_html()साथ ही काम करता है ।
कार्म

जवाबों:


605

का उपयोग करें index=False

df.to_csv('your.csv', index=False)

शर्मनाक आसान समाधान, मुझे इस 6y पर पहुंचने के बाद शर्म आती है।
पेलुज़ा

89

स्थिति को संभालने के दो तरीके हैं जहां हम नहीं चाहते हैं कि सूचकांक को सीएसवी फ़ाइल में संग्रहीत किया जाए।

  1. जैसा कि दूसरों ने कहा है कि आप अपने डेटाफ़्रेम को सीएसवी फ़ाइल में सहेजते समय सूचकांक = गलत का उपयोग कर सकते हैं

    df.to_csv('file_name.csv',index=False)

  2. या आप अपना डेटाफ्रेम बचा सकते हैं जैसा कि यह एक इंडेक्स के साथ है, और पढ़ते समय आप केवल अपने पिछले इंडेक्स वाले 0 नाम वाले कॉलम को छोड़ दें।

    df.to_csv(' file_name.csv ')
    df_new = pd.read_csv('file_name.csv').drop(['unnamed 0'],axis=1)


1
"और पढ़ते समय आप केवल अपने पिछले इंडेक्स वाले अनाम 0 वाले कॉलम को ड्रॉप करें" ऐसा करने का एक बेहतर तरीका निर्दिष्ट है pd.read_csv(..., index_col=[0], और अतिरिक्त "ड्रॉप" कॉल से बचें।
cs95

30

यदि आप कोई इंडेक्स नहीं चाहते हैं, तो फ़ाइल का उपयोग करके पढ़ें:

import pandas as pd
df = pd.read_csv('file.csv', index_col=0)

इसका उपयोग करके बचाएं

df.to_csv('file.csv', index=False)

2
मुझे विश्वास है कि किसी ने भी त्रुटि पर ध्यान नहीं दिया। सीएसवी को बचाने के लिए, यह होगाdf.to_csv('file.csv', index=False)
MEdwin

1
Lol कोई ध्यान नहीं दे रहा है। धन्यवाद।
amalik2205

22

जैसा कि अन्य लोगों ने कहा है, यदि आप पहली बार में इंडेक्स कॉलम को सहेजना नहीं चाहते हैं, तो आप उपयोग कर सकते हैं df.to_csv('processed.csv', index=False)

हालाँकि, आमतौर पर आपके द्वारा उपयोग किए जाने वाले डेटा के बाद, किसी प्रकार का इंडेक्स स्वयं होता है, मान लें कि 'टाइमस्टैम्प' कॉलम है, मैं इंडेक्स को रखूंगा और इसका उपयोग करके डेटा लोड करूंगा।

इसलिए, अनुक्रमित डेटा को बचाने के लिए, पहले अपना सूचकांक निर्धारित करें और फिर डेटाफ़्रेम को सहेजें:

df.set_index('timestamp')
df.to_csv('processed.csv')

बाद में, आप या तो सूचकांक के साथ डेटा पढ़ सकते हैं:

pd.read_csv('processed.csv', index_col='timestamp')

या डेटा पढ़ें, और फिर सूचकांक सेट करें:

pd.read_csv('filename.csv')
pd.set_index('column_name')

यदि मैंने index_col को सेट किया है तो सहेजा गया है, फिर भी मेरे पास csv में एक संख्यात्मक अनाम स्तंभ है। (पायथन 2)
13

14

एक अन्य उपाय यदि आप इस कॉलम को इंडेक्स के रूप में रखना चाहते हैं।

pd.read_csv('filename.csv', index_col='Unnamed: 0')

1
बिल्कुल वही, जिसकी मुझे तलाश थी, धन्यवाद। यह किसी भी तरह प्राथमिक कुंजी की अवधारणा को पारदर्शी रूप से अनुवाद करने में मदद करता है, यहां तक ​​कि सीएसवी का उपयोग करते समय भी
Tobbey

7

यदि आप एक अच्छा प्रारूप चाहते हैं तो अगला कथन सबसे अच्छा है:

dataframe_prediction.to_csv('filename.csv', sep=',', encoding='utf-8', index=False)

इस स्थिति में आपको स्तंभ और utf-8 प्रारूप के बीच अलग ',' के साथ एक csv फ़ाइल मिली है। इसके अलावा, संख्यात्मक सूचकांक दिखाई नहीं देगा।

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