2016-07-15 7 views
5

मैं मैनुअल here पढ़ लिया है और this जवाब देखा है, लेकिन यह काम नहीं कर रहा:पांडस में एक श्रृंखला से टीएसवी फ़ाइल को सही तरीके से कैसे लिखना है?

>>> import pandas as pd 
>>> import csv 
>>> pd.Series([my_list]).to_csv('output.tsv',sep='\t',index=False,header=False, quoting=csv.QUOTE_NONE) 
    Traceback (most recent call last): 
     File "<stdin>", line 1, in <module> 
    TypeError: to_csv() got an unexpected keyword argument 'quoting' 

के हवाले से तर्क के बिना, यह काम करता है।

pd.Series([my_list]).to_csv('output.tsv',sep='\t',index=False,header=False) 

लेकिन यह मेरे इच्छित उपयोग के साथ असंगत है।

चीजों को और भी अधिक भ्रमित करने के लिए, जब मैं इस तरह से एक मेज बाहर लिखा था, वहाँ कोई उद्धरण, और कोई त्रुटि थे:

my_dataframe.to_csv('output2.tsv',sep='\t', quoting=csv.QUOTE_NONE) 

किसी भी विचार क्या चल रहा है?

+0

[डॉक्स] के अनुसार (http://pandas.pydata.org/pandas-docs/sta ble/gener/pandas.Series.to_csv.html) Series.to_csv पर कोई 'उद्धरण' तर्क नहीं है, इसलिए यह आश्चर्य की बात नहीं है कि आपको वह त्रुटि मिल रही है। क्या कोई कारण है कि आप केवल 'डेटाफ्रेम' का उपयोग नहीं कर सकते हैं? –

+0

मैं सिर्फ डेटा के एक कॉलम को लिखने की कोशिश कर रहा था और सोचा था कि मैं अनावश्यक रूपांतरण चरणों से बच सकता हूं। ऐसा लगता है कि 'डेटाफ्रेम' में रूपांतरण सभी के बाद आवश्यक है। कोई बड़ा सौदा नहीं, मैं इसके बजाय बस ऐसा करूंगा। धन्यवाद। – user5359531

उत्तर

4

internal pandas implementation of Series.to_csv() पहले DataFrame को सीरीज में कनवर्ट करता है और उसके बाद DataFrame.to_csv() प्रणाली को बुलाती है:

def to_csv(self, path, index=True, sep=",", na_rep='', float_format=None, 
      header=False, index_label=None, mode='w', nanRep=None, 
      encoding=None, date_format=None, decimal='.'): 
    """ 
    Write Series to a comma-separated values (csv) file 
    ... 
    """ 
    from pandas.core.frame import DataFrame 
    df = DataFrame(self) 
    # result is only a string if no path provided, otherwise None 
    result = df.to_csv(path, index=index, sep=sep, na_rep=na_rep, 
         float_format=float_format, header=header, 
         index_label=index_label, mode=mode, nanRep=nanRep, 
         encoding=encoding, date_format=date_format, 
         decimal=decimal) 
    if path is None: 
     return result 

तो आप इसे अपने आप को परिवर्तित कर सकते हैं और फिर आप मापदंडों के एक अमीर सेट करना होगा:

pd.DataFrame(your_series_obj).to_csv(..., quoting=csv.QUOTE_NONE) 

या:

your_series_obj.to_frame().to_csv(..., quoting=csv.QUOTE_NONE) 
संबंधित मुद्दे