59742


macでpythonからcsvを読み込む場合はどのように設定すれば良いでしょうか？  
下記のようなコードを作成しましたが、実行するとエラーが表示されます。

**コード**

[code]

    import pandas as pd #pandasをpdとしてインポート
    
    df = pd.read_csv("/Users/ha/Desktop/tati.csv", encoding="utf-8_sig")
    
    print (df)
    
[/code]

**エラーメッセージ**

[code]

    Traceback (most recent call last):
      File "casa.py", line 3, in <module>
        df = pd.read_csv("/Users/ha/Desktop/tati.csv", encoding="utf-8_sig")
      File "/usr/local/lib/python3.7/site-packages/pandas/io/parsers.py", line 702, in parser_f
        return _read(filepath_or_buffer, kwds)
      File "/usr/local/lib/python3.7/site-packages/pandas/io/parsers.py", line 435, in _read
        data = parser.read(nrows)
    
      File "/usr/local/lib/python3.7/site-packages/pandas/io/parsers.py", line 1139, in read
        ret = self._engine.read(nrows)
      File "/usr/local/lib/python3.7/site-packages/pandas/io/parsers.py", line 1995, in read
        data = self._reader.read(nrows)
      File "pandas/_libs/parsers.pyx", line 899, in pandas._libs.parsers.TextReader.read
      File "pandas/_libs/parsers.pyx", line 914, in pandas._libs.parsers.TextReader._read_low_memory
      File "pandas/_libs/parsers.pyx", line 991, in pandas._libs.parsers.TextReader._read_rows
      File "pandas/_libs/parsers.pyx", line 1123, in pandas._libs.parsers.TextReader._convert_column_data
      File "pandas/_libs/parsers.pyx", line 1176, in pandas._libs.parsers.TextReader._convert_tokens
      File "pandas/_libs/parsers.pyx", line 1299, in pandas._libs.parsers.TextReader._convert_with_dtype
      File "pandas/_libs/parsers.pyx", line 1318, in pandas._libs.parsers.TextReader._string_convert
      File "pandas/_libs/parsers.pyx", line 1611, in pandas._libs.parsers._string_box_decode
      File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/encodings/utf_8_sig.py", line 23, in de
    code
        (output, consumed) = codecs.utf_8_decode(input, errors, True)
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8a in position 0: invalid start byte
    
[/code]


CC BY-SA 4.0
2019-10-16T04:34:15.813
59736
2020-09-27T22:00:50.083
2019-10-16T04:49:24.500
3060
18859
question
python python3 pandas
PandasでCSVファイルの読み込みに失敗してしまう


CSVファイルの読み込む際に

[code]

    df = pd.read_csv("/Users/ha/Desktop/tati.csv", encoding="utf-8_sig")
    
[/code]

と、csvファイルのエンコーディングが、BOM付きunicode（"utf-8_sig"）であると指定しています。

しかし、「UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8a in position 0:
invalid start
byte」(１文字目が"0x8a"というのは、'utf-8'コーデックでは不正なので、デコード出来ません)というエラーが発生したということは、"/Users/ha/Desktop/tati.csv"がBOM付きunicode（"utf-8_sig"）ではないのだと思います。

"/Users/ha/Desktop/tati.csv"がBOM付きunicodeコーデックのファイルであるなら、最初の２バイトは、0xEF、0xBB
のはずです。バイナリエディタでcsvファイルの内容を確認してください。  
そして、正しいコーデックのファイルを読み込ませれば、問題は起きないはずです。


CC BY-SA 4.0
2019-10-16T08:35:16.043
59742
2019-10-16T08:35:16.043
217
59736
answer