37975


pandasでcsv出力をしようとするとエラーになってしまいます。

csv_up.py

[code]

    # -*- coding: utf-8 -*-
    import pandas as pd
    import csv
    
    def make_csv_for_recipt(data_for_recipt):
        df = pd.DataFrame([
          ["0001", "John", "Engineer"],
          ["0002", "ボブ", "Sales"]],
          columns=['id', 'name', 'job'])
    
        df.to_csv("employee.csv")
    
[/code]

エラー内容は以下の通りです。

[code]

    Traceback (most recent call last):
      File "csv_up.py", line 2, in <module>
        import pandas as pd
      File "/root/.pyenv/versions/anaconda3-4.3.1/lib/python3.6/site-packages/pandas/__init__.py", line 37, in <module>
        import pandas.core.config_init
      File "/root/.pyenv/versions/anaconda3-4.3.1/lib/python3.6/site-packages/pandas/core/config_init.py", line 18, in <module>
        from pandas.formats.format import detect_console_encoding
      File "/root/.pyenv/versions/anaconda3-4.3.1/lib/python3.6/site-packages/pandas/formats/format.py", line 33, in <module>
        from pandas.io.common import _get_handle, UnicodeWriter, _expand_user
      File "/root/.pyenv/versions/anaconda3-4.3.1/lib/python3.6/site-packages/pandas/io/common.py", line 407, in <module>
        def UnicodeReader(f, dialect=csv.excel, encoding="utf-8", **kwds):
    AttributeError: module 'csv' has no attribute 'excel'
    
[/code]

pythonのバージョン

[code]

    # python -V
    Python 3.6.0 :: Anaconda 4.3.1 (64-bit)
    
[/code]


CC BY-SA 3.0
2017-09-15T08:04:19.840
37968
2017-09-15T14:19:00.670
7277
question
python python3 pandas
pandasでcsv出力をしようとするとエラーになってしまう


>
[code]

>     AttributeError: module 'csv' has no attribute 'excel'
>  
[/code]

というのは、`csv` モジュールに `excel` という属性が無い、という意味です。  
標準ライブラリの `csv` モジュールには
[`csv.excel`](https://docs.python.jp/3/library/csv.html#csv.excel)
が存在するはずですから、これが無いならば、読み込んでいる `csv` モジュールが標準の物ではないと考えられます。

可能性は色々ありますが、モジュール名と同名のファイル（質問の例ですと
`csv.py`）をカレントディレクトリに作ってしまっていて、それがモジュールとして読み込まれてしまっているのが、こういったケースの典型です。

[code]

    import csv
    print(csv.__file__)
    
[/code]

などとして確認して下さい。


CC BY-SA 3.0
2017-09-15T14:19:00.670
37975
2017-09-15T14:19:00.670
3054
37968
answer