![](/img/trans.png)
[英]Python pandas - read_csv Dataframe is dropping values from columns
[英]Python Pandas DataFrame read_csv UnicodeDecodeError
我有一個 129 MB 的 CSV 文件,有 849,275 行和 18 列。 我正在嘗試使用read_csv
將 CSV 文件讀入DataFrame
read_csv
。
當我使用encoding='cp1252'
:
read_file = pd.read_csv('myfile.csv', encoding='cp1252')
錯誤很長,但最終在底部說明了這一點:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 41:
character maps to <undefined>
當我指定:無編碼、 encoding='utf-8'
或encoding='utf-8-sig'
,我得到:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 65:
invalid start byte
題:
我可以完全刪除這些有問題的字符。 更好的是將它們規范化為 127 以下的 ASCII 字符。我如何使用JUST PANDAS做到這一點? 如果存在,我正在尋找最像熊貓的方式。
不要過度討論這個問題,但這里列出了我確定導致問題的一列中的字符類型:
Character Ord
32
! 33
" 34
# 35
$ 36
% 37
& 38
' 39
( 40
) 41
* 42
+ 43
, 44
- 45
. 46
/ 47
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
: 58
; 59
< 60
= 61
> 62
? 63
@ 64
A 65
B 66
C 67
D 68
E 69
F 70
G 71
H 72
I 73
J 74
K 75
L 76
M 77
N 78
O 79
P 80
Q 81
R 82
S 83
T 84
U 85
V 86
W 87
X 88
Y 89
Z 90
[ 91
\ 92
] 93
^ 94
_ 95
` 96
a 97
b 98
c 99
d 100
e 101
f 102
g 103
h 104
i 105
j 106
k 107
l 108
m 109
n 110
o 111
p 112
q 113
r 114
s 115
t 116
u 117
v 118
w 119
x 120
y 121
z 122
{ 123
| 124
} 125
~ 126
129
143
157
160
¡ 161
¢ 162
£ 163
§ 167
¨ 168
© 169
« 171
¬ 172
® 174
° 176
± 177
² 178
³ 179
´ 180
µ 181
· 183
¸ 184
¹ 185
º 186
¼ 188
½ 189
¾ 190
× 215
ß 223
à 224
á 225
â 226
ã 227
ä 228
å 229
æ 230
ç 231
è 232
é 233
ì 236
í 237
î 238
ï 239
ð 240
ñ 241
ó 243
ô 244
ö 246
ú 250
û 251
ü 252
š 353
Ž 381
ƒ 402
– 8211
— 8212
‘ 8216
’ 8217
‚ 8218
“ 8220
” 8221
„ 8222
† 8224
• 8226
… 8230
‹ 8249
› 8250
€ 8364
™ 8482
最好是使用 Python 3。或者,這在 read_csv 中的 string.encode(' ascii ', errors='ignore' ) 中幫助了我:
read_csv(..., converters={column_x= lambda v: v.encode('ascii',errors='ignore')})
如果您完全確定windows-1251
/ cp1251
中的文件,您可以嘗試關閉解碼錯誤:
import codecs
codecs.register_error("strict", codecs.ignore_errors)
它幫助我閱讀了在 Windows 下構建的 Linux 下的 csv 文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.