--Environnement --Windows10 Pro version 1909 - Python 3.8.5 - Pandas 1.0.5
Traceback (most recent call last):
File "C:/path/to/my_code.py", line 258, in <module>
csv = read_files(target_dir)
File "C:/path/to/my_code.py", line 74, in read_files
data = pd.read_csv(file, encoding="shift_jis")
File "C:\path\to\venv\lib\site-packages\pandas\io\parsers.py", line 676, in parser_f
return _read(filepath_or_buffer, kwds)
File "C:\path\to\venv\lib\site-packages\pandas\io\parsers.py", line 448, in _read
parser = TextFileReader(fp_or_buf, **kwds)
File "C:\path\to\venv\lib\site-packages\pandas\io\parsers.py", line 880, in __init__
self._make_engine(self.engine)
File "C:\path\to\venv\lib\site-packages\pandas\io\parsers.py", line 1114, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "C:\path\to\venv\lib\site-packages\pandas\io\parsers.py", line 1891, in __init__
self._reader = parsers.TextReader(src, **kwds)
File "pandas\_libs\parsers.pyx", line 529, in pandas._libs.parsers.TextReader.__cinit__
File "pandas\_libs\parsers.pyx", line 720, in pandas._libs.parsers.TextReader._get_header
File "pandas\_libs\parsers.pyx", line 916, in pandas._libs.parsers.TextReader._tokenize_rows
File "pandas\_libs\parsers.pyx", line 2063, in pandas._libs.parsers.raise_parser_error
UnicodeDecodeError: 'shift_jis' codec can't decode byte 0xee in position 4225: illegal multibyte sequence
my_code.py
data = pd.read_csv(file, encoding="shift_jis")
C'est dans test2.csv, ・ Hashigodaka "Taka" ・ Tachisaki "Saki" Cela est dû au fait que les chaînes d'extension Windows telles que> sont mélangées. Points à noter lorsque vous laissez les pandas lire le csv de la sortie Excel --Qiita
Je suis fou alors j'ai essayé la combinaison. *. J'ai essayé d'utiliser "Takasaki" comme caractère étendu.
read_csv Code de caractère |
dossier de Code de caractère |
dossier de Avec des caractères étendus |
dossier de Aucun caractère étendu |
---|---|---|---|
shift_jis | shift_jis | Erreur | OK |
shift_jis | cp392 | Erreur | OK |
cp932 | shift_jis | Erreur éditeur(Sublime Text)alors Si vous mettez des caractères étendus et enregistrez 保存はalorsきるけど警告が出る。 Vous devriez remarquer que c'est étrange ... |
OK |
cp932 | cp932 | OK | OK |
shift avec cp932_Erreur lors de la lecture d'un fichier avec des caractères étendus avec jis
# ...réduction...
UnicodeDecodeError: 'cp932' codec can't decode byte 0x86 in position 5: illegal multibyte sequence
Si vous utilisez un fichier avec le japonais sous Windows, il est préférable de le définir sur cp932
.
J'ai également étudié le CP932 et le SJIS.
my_code.py
data = pd.read_csv(file, encoding="cp932")
Recommended Posts