結論
- 日本語を含むcsvファイルを読み込む時は、オプションにencoding=’shift_jis’を指定する。
- encoding=’shit_jis’を指定した際、読み込みエラーとなることがある。
- 読み込みエラーになるのは、csvファイル内に拡張文字が含まれているのが原因。
- 拡張文字が含まれている場合は、encoding=’cp932’を指定する。
経緯
不動産取引価格情報検索から機械学習用データを取得した。
- 取得したデータ:2020年の東京都千代田区の不動産取引価格情報
- CSVファイル名:13101_20201_20204.csv
下記のコードでCSVファイルを読み込んでみた。
import pandas as pd
df = pd.read_csv('./13101_20201_20204.csv')
print(df.head())
実行結果
No ��� �n�� ... ������_ ���� ����̎��
0 1 ���Ã}���V������ NaN ... 2020�N��S�l���� ������ NaN
1 2 ���Ã}���V������ NaN ... 2020�N��S�l���� ������ NaN
2 3 ���Ã}���V������ NaN ... 2020�N��S�l���� ������ NaN
3 4 ���Ã}���V������ NaN ... 2020�N��R�l���� ������ NaN
4 5 ���Ã}���V������ NaN ... 2020�N��Q�l���� NaN NaN
日本語は文字化けしている。
read_csvの引数を調査する。
Pandasのread_csv関数でCSVファイルを読み込む方法
CSV形式のデータは多くの人が扱えることもあり、データ分析でもよく使われます。本記事では、PandasでCSVを読み込む関数であるread_csv関数でよく使われる利用方法について解説しました。
上記のWebサイトで、文字コードを指定するオプションとしてencodingがあることを確認した。
encodingを指定した下記のコードでCSVファイルを読み込む。
import pandas as pd
df = pd.read_csv('./13101_20201_20204.csv', encoding='shift_jis')
print(df.head())
実行結果
UnicodeDecodeError: 'shift_jis' codec can't decode byte 0x87 in position 151: illegal multibyte sequence/* Your code... */
CSVファイルを読み込む時にエラーが発生した。
CSVファイル内に拡張文字に該当する文字を使用していると、shift_jisでは読み込めない。拡張文字が含まれている場合は、cp932を指定する必要がある。
下記のコードでCSVVファイルを読み込む
import pandas as pd
df = pd.read_csv('./13101_20201_20204.csv', encoding='cp932')
print(df.head())
実行結果
No 種類 地域 市区町村コード 都道府県名 ... 建ぺい率(%) 容積率(%) 取引時点 改装 取引の事情等
0 1 中古マンション等 NaN 13101 東京都 ... 80.0 500.0 2020年第4四半期 未改装 NaN
1 2 中古マンション等 NaN 13101 東京都 ... 80.0 500.0 2020年第4四半期 未改装 NaN
2 3 中古マンション等 NaN 13101 東京都 ... 80.0 500.0 2020年第4四半期 改装済 NaN
3 4 中古マンション等 NaN 13101 東京都 ... 80.0 500.0 2020年第3四半期 未改装 NaN
4 5 中古マンション等 NaN 13101 東京都 ... 80.0 700.0 2020年第2四半期 NaN NaN
コメント