Python 3.x:日本語の入ったCSVファイルを読み込んで,データフレームに格納する

日本語の入ったCSVファイルの読み込み方を試行錯誤したので,結果を記しておきました

こんな日本語の入ったCSVファイルを用意します

# testJP.csv
"福岡",1,2
"博多",3,4
"長崎",5,6

結論から先にいうと・・

こうすれば出来ました

import codecs as cd
import pandas as pd

with cd.open("testJP.csv", "r", "Shift-JIS", "ignore") as file:
    df = pd.read_table(file,header=None,sep=',')
    
print(df)    

と書くと・・

    0  1  2
0  福岡  1  2
1  博多  3  4
2  長崎  5  6

ここから下は試行錯誤した結果ですよ

普通に読み込ませると・・・

import pandas as pd

df = pd.read_csv('testJP.csv')

と書くと...

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x95 in position 0: invalid start byte

読み込めませんでした,,,

cdを使うと??

import codecs as cd
import pandas as pd

with cd.open("testJP.csv", "r", "Shift-JIS", "ignore") as file:
    df = pd.read_table(file,header=None)
    
print(df)  

と書くと・・・

   福岡,1,2
0  博多,3,4
1  長崎,5,6

ただこれは見ての通り,カンマで区切られてないみたいなんですね~

import codecs as cd
import pandas as pd

with cd.open("testJP.csv", "r", "Shift-JIS", "ignore") as file:
    df = pd.read_table(file,header=None)
    
print(df)    

と書くと・・・

        0
0  福岡,1,2
1  博多,3,4
2  長崎,5,6

おぉ,,

結論は??

無理やり区切る

import codecs as cd
import pandas as pd

with cd.open("testJP.csv", "r", "Shift-JIS", "ignore") as file:
    df = pd.read_table(file,header=None,sep=',')
    
print(df)    

と書くと・・

    0  1  2
0  福岡  1  2
1  博多  3  4
2  長崎  5  6

下記も参考に
publicjournal.hatenablog.com