どうもヒノマルクです。
今回はCSVファイルではなくTSVとスペースで区切られたファイルを読み込んでみます。
import pandas as pd
pd.__version__
Out[0]
'1.3.4'
TSVを読み込む
# API reference: https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html
df = pd.read_csv("/Users/hinomaruc/Desktop/notebooks/ドラえもん登場人物.tsv",header=None,names=["名前","誕生日"])
df
Out[0]
名前 誕生日 0 ドラえもん\t2112-9-3 NaN 1 野比 のび太\t1964-8-7 NaN 2 源 静香\t1964-5-2 NaN 3 骨川 スネ夫\t1964-3-28 NaN 4 剛田 武\t1964-6-15 NaN
CSVファイルを読み込むときと同じコードを使いましたが、上手く読み込めませんでした。
これは区切り文字をきちんと認識できていないからです。
区切り文字がコンマ以外のファイルは明示的にsepオプションで区切り文字を指定してあげる必要があります。
今回のファイルはTSV(タブで分けられたファイル)なので、\tと指定してあげます。
(タブ区切り以外にも スペース、\001、|などで区切りられている場合もあります。)
df = pd.read_csv("/Users/hinomaruc/Desktop/notebooks/ドラえもん登場人物.tsv",header=None,names=["名前","誕生日"],sep="\t")
df
Out[0]
名前 誕生日 0 ドラえもん 2112-9-3 1 野比 のび太 1964-8-7 2 源 静香 1964-5-2 3 骨川 スネ夫 1964-3-28 4 剛田 武 1964-6-15
今度はうまく読み込めました。
スペース区切りもやってみる。
df = pd.read_csv("/Users/hinomaruc/Desktop/notebooks/ドラえもん登場人物.space",header=None,names=["名前","誕生日"],sep=" ")
df
Out[0]
名前 誕生日 0 ドラえもん 2112-9-3 1 野比 のび太 2 源 静香 3 骨川 スネ夫 4 剛田 武
「野比 のび太」の間にスペースが存在するため、区切られてしまいました。
これを解決するためには、区切り文字を変更するか、「野比 のび太」→ 「"野比 のび太"」のようにダブルクオテーションで囲む必要があります。
今回は各登場人物の名前をダブルクオテーションで囲んだファイルを作成しました。
df = pd.read_csv("/Users/hinomaruc/Desktop/notebooks/ドラえもん登場人物.space2",header=None,names=["名前","誕生日"],sep=" ")
df
Out[0]
名前 誕生日 0 ドラえもん 2112-9-3 1 野比 のび太 1964-8-7 2 源 静香 1964-5-2 3 骨川 スネ夫 1964-3-28 4 剛田 武 1964-6-15
無事スペースが含まれている名前が区切られず表示されるようになりました。
参照元
・https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html [pandas.read_csv — pandas 1.3.4 documentation