2016-07-15 19 views
5

私は手動hereを読み、this答えを見て、それが動作していないていますPandasのシリーズからTSVファイルを正しく書き出す方法は?

>>> 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

[docs](http://pandas.pydata.org/pandas-docs/sta)によると、 ble/generated/pandas.Series.to_csv.html)Series.to_csvへの 'quoting'引数はありません。そのため、このエラーが発生しているのは驚くことではありません。 'DataFrame'だけでは使えない理由はありますか? –

+0

私はちょうど1列のデータを書き出しようとしていて、不必要な変換ステップを避けることができると考えました。結局のところ、 'DataFrame'への変換が必要であるように見えます。大したことではなく、私はそれを代わりにやるだろう。ありがとう。 – user5359531

答えて

4

internal pandas implementation of Series.to_csv()最初は、データフレームにシリーズを変換し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) 
関連する問題