私はPythonとQT GUIを使ってアプリケーションを開発しています。 ファイルをDataFrame
にインポートする必要があります。 pandas.read_csv
メソッドで開くには、パスとファイル名を取得するのにQFileDialog.getOpenFileName
を使用します。 「ó」のような特殊文字を含むパスを取得するまでは、すべてうまく動作します。 pandas.read_csv
は動作せず、アプリケーションがクラッシュします。pandas.read_csvはアクセント記号付きファイルをインポートできません
私はコンソールでエラーを再現し、以下の結果を持ってしてみてください:
In[2]: import pandas as pd
Backend Qt5Agg is interactive backend. Turning interactive mode on.
In[3]: path1 = 'F:/Software_Proyects/Python/Proyectos/test_read_csv/FlowData.txt'
In[4]: df1 = pd.read_csv(path1, delim_whitespace=True, dtype=object)
In[5]: path2 = 'F:/Software_Proyects/Python/Proyectos/test_read_csv_with_ó/FlowData.txt'
In[6]: df2 = pd.read_csv(path2, delim_whitespace=True, dtype=object)
Traceback (most recent call last):
File "C:\Program Files (x86)\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2881, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-6-feba8e024d43>", line 1, in <module>
df2 = pd.read_csv(path2, delim_whitespace=True, dtype=object)
File "C:\Program Files (x86)\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 646, in parser_f
return _read(filepath_or_buffer, kwds)
File "C:\Program Files (x86)\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 389, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "C:\Program Files (x86)\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 730, in __init__
self._make_engine(self.engine)
File "C:\Program Files (x86)\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 923, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "C:\Program Files (x86)\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 1390, in __init__
self._reader = _parser.TextReader(src, **kwds)
File "pandas\parser.pyx", line 373, in pandas.parser.TextReader.__cinit__ (pandas\parser.c:4184)
File "pandas\parser.pyx", line 669, in pandas.parser.TextReader._setup_parser_source (pandas\parser.c:8471)
OSError: Initializing from file failed
show_versions()
の出力は次のとおりです。私はこの記事で読んで
In[7]: pd.show_versions()
INSTALLED VERSIONS
------------------
commit: None
python: 3.6.0.final.0
python-bits: 32
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 78 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None
pandas: 0.19.2
nose: 1.3.7
pip: 9.0.1
setuptools: 27.2.0
Cython: 0.25.2
numpy: 1.11.3
scipy: 0.18.1
statsmodels: 0.6.1
xarray: None
IPython: 5.1.0
sphinx: 1.5.1
patsy: 0.4.1
dateutil: 2.6.0
pytz: 2016.10
blosc: None
bottleneck: 1.2.0
tables: 3.2.2
numexpr: 2.6.1
matplotlib: 2.0.0
openpyxl: 2.4.1
xlrd: 1.0.0
xlwt: 1.2.0
xlsxwriter: 0.9.6
lxml: 3.7.2
bs4: 4.5.3
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: 1.1.5
pymysql: None
psycopg2: None
jinja2: 2.9.4
boto: 2.45.0
pandas_datareader: None
Encoding with pandas.read_csv when file name has accents問題がで修正されましたパンダ0.14.0。
この問題を解決するための推奨事項はありますか?
は試してみてくださいpandas.read_csvにファイルポインタを渡し多分 'pd.read_csv(パス1、delim_whitespace =真、DTYPE =オブジェクト、エンコーディング=」 utf-8 ') 'または他のリスト:https://docs.python.org/3/library/codecs.html#standard-encodings – Protostome
[この問題](https:// github .com/pandas-dev/pandas/issues/15086) – MaxU
@Protostome、ご回答ありがとうございます。私は試しましたが動作しません。 read_csvのエンコーディングオプションはファイルの内容であり、ファイルへのパスではないからだと思います。ファイルは問題なくインポートされますが、ファイルのパスに特殊文字があると問題が発生します – jmejias