pandasにexcel出力のcsvを読ませる時に注意する点
pythonに読ませるなら、文字形式はutf-8にして欲しいものですが、
データ出力側も色々な事情ありますから、受け側で変換して読み込まなければならないケースも多々あります。
Windows&Excelの環境で出力されるcsvは、シフトJISです。。。
ということで、pandasで、
import pandas as pd
dataset1 = pd.read_csv("hogehoge.csv",encoding="shift_jis")
とやれば、OKだなーと思って油断してると、たまにちゃんと読めないことがあります。
山田,1000
佐藤,2000
山本,3000
これは読めますが、
1,山田,1000
2,髙橋,2000
3,黑﨑,3000
もれなく、下記のエラーが出ます。。。
UnicodeDecodeError: 'shift_jis' codec can't decode byte 0xfb in position 0: illegal multibyte sequence
これは、test2.csvに、
・ハシゴダカ "髙"
・タチサキ "崎"
等の、windows拡張文字列が混ざっている事に起因します。
このような文字を読むためには、文字コードをcp932としてやる必要があります。
encoding='cp932'
こういう事があるので、windowsだから、shift_jisで読んどけばOKという意識ではなく、
最初から、cp932で読むようにしておけば、無駄なトラブルに悩まされなくて良いというお話でした。
import pandas as pd
dataset1 = pd.read_csv("hogehoge.csv",encoding="cp932")
※下記サイト大変参考になりました。
「Shift_JIS と Windows-31J (MS932) の違いを整理してみよう」
http://weblabo.oscasierra.net/shift_jis-windows31j/
Author And Source
この問題について(pandasにexcel出力のcsvを読ませる時に注意する点), 我々は、より多くの情報をここで見つけました https://qiita.com/recomemos/items/1032199c5c47f1ce5417著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .