pandasでcsvファイルを読み込み、queryメソッドにて指定した条件を抽出しようとしたときに
「UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)」
というエラーがおきました。
プログラムは下記です。
python
1import pandas as pd 2import sys, codecs 3import dask.dataframe as ddf 4 5sys.stdout = codecs.getwriter('utf_8')(sys.stdout) 6sys.stdin = codecs.getreader('utf_8')(sys.stdin) 7 8hoge = ddf.read_csv(「ファイルネーム」,encoding='utf-8',engine='python') 9hoge_ex = hoge.query('2000<"年"<2005')
デフォルトエンコーディングはutf-8です
解決策をご存知のかたがいましたら、おしえていただけると幸いです。
#########################
下記追記情報
追記情報依頼ありがとうございます。
Pythonバージョン:Python3
CSVファイルのエンコーディング:UTF-8
TraceBack全文;
TraceBack
1Traceback (most recent call last): 2 File "csv_merge.py", line 16, in <module> 3 hoge_ex = hoge.query('2000<"年"<2005') 4 File "C:\user\Anaconda3\lib\site-packages\dask\dataframe\core.py", line 2367, in query 5 meta = self._meta.query(expr, **kwargs) 6 File "C:\user\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2116, in query 7 res = self.eval(expr, **kwargs) 8 File "C:\user\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2186, in eval 9 return _eval(expr, inplace=inplace, **kwargs) 10 File "C:\user\Anaconda3\lib\site-packages\pandas\core\computation\eval.py", line 267, in eval 11 ret = eng_inst.evaluate() 12 File "C:\user\Anaconda3\lib\site-packages\pandas\core\computation\engines.py", line 72, in evaluate 13 self.result_type, self.aligned_axes = _align(self.expr.terms) 14 File "C:\user\Anaconda3\lib\site-packages\pandas\core\computation\align.py", line 135, in _align 15 return _result_type_many(*(term.value for term in terms)).type, None 16 File "C:\user\Anaconda3\lib\site-packages\pandas\core\computation\common.py", line 20, in _result_type_many 17 return reduce(np.result_type, arrays_and_dtypes) 18UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
回答1件
あなたの回答
tips
プレビュー