回答編集履歴

1

エラー再現について追記

2018/11/15 03:00

投稿

can110
can110

スコア38256

test CHANGED
@@ -39,3 +39,73 @@
39
39
  print('あいう') # OK
40
40
 
41
41
  ```
42
+
43
+
44
+
45
+ #### エラー現象について追記
46
+
47
+
48
+
49
+ 以下の通り、コード一部修正+当方のCSVデータでは正常動作しました。参考まで。
50
+
51
+ ポイントとしては、query文字列において、SQLとは異なり列名を`"`で囲ってはいけないことに注意です。
52
+
53
+
54
+
55
+ ```Python
56
+
57
+ # 以下では標準入出力は利用しないので、切り替えは不要だが
58
+
59
+ enc = 'utf-8' #他、cp932など
60
+
61
+ import sys,io
62
+
63
+ sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=enc)
64
+
65
+ sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding=enc)
66
+
67
+
68
+
69
+ import pandas as pd
70
+
71
+ import dask.dataframe as ddf
72
+
73
+
74
+
75
+ hoge = ddf.read_csv('inp.csv',encoding='utf-8',engine='python')
76
+
77
+ hoge_ex = hoge.query('2000<年<2005') # 年は""で囲わない!
78
+
79
+ # UnicodeEncodeError('ascii', '年', 0, 1, 'ordinal not in range(128)')が発生
80
+
81
+ hoge_ex.to_csv('./out-*.csv',encoding='utf-8')
82
+
83
+ ```
84
+
85
+
86
+
87
+ inp.csv
88
+
89
+ ```PlainText
90
+
91
+ 名称,年,値
92
+
93
+ あいう,2000,1.2
94
+
95
+ かきく,2004,3.4
96
+
97
+ さしす,2018,5.6
98
+
99
+ ```
100
+
101
+
102
+
103
+ out-0.csv なぜか見出し先頭にカンマがついてしまう
104
+
105
+ ```PlainText
106
+
107
+ ,名称,年,値
108
+
109
+ 1,かきく,2004,3.4
110
+
111
+ ```