pandas インポートのカスタマイズ
pandas パッケージは、データサイエンティストがデータをインポートする際によく直面する問題、
たとえばフラットファイル内のコメント行、
空行、欠損値(NA や NaN)などを柔軟に処理できます。この章のまとめとして、破損した
タイタニックデータセット titanic_corrupt.txt をインポートしましょう。このファイルには '#' という文字から始まるコメントが含まれており、タブ区切り形式になっています。
pd.read_csv() の主な引数は以下のとおりです。
sep:区切り文字を指定します。- デリミタには
','を使います。 - タブ区切りの場合は
'\t'を使います。
- デリミタには
comment:コメントの開始文字を指定します。その文字以降のテキストは無視されます。na_values:NA/NaNとして扱う文字列のリストを指定します。デフォルトで一部の値はNA/NaNとして認識されますが、この引数を使うと追加の値を指定できます。
この演習はコースの一部です
Python でのデータインポート入門
演習の手順
pd.read_csv()の引数を補完して、titanic_corrupt.txtを正しくインポートしましょう。sepはデリミタを指定する引数で、np.loadtxt()のdelimiter引数と同じ働きをします。このファイルはタブ区切りであることに注意してください。commentには、コメントが始まる文字を指定します。このファイルでは'#'です。na_valuesには、NA/NaNとして扱う文字列のリストを指定します。ここでは'Nothing'を渡してください。
- 残りのコードを実行して、作成された DataFrame の先頭を表示し、タイタニック号の乗客の
'Age'(年齢)のヒストグラムを描画しましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
# Assign filename: file
file = 'titanic_corrupt.txt'
# Import file: data
data = pd.read_csv(file, sep='____', comment='____', na_values=[____])
# Print the head of the DataFrame
print(data.head())
# Plot 'Age' variable in a histogram
pd.DataFrame.hist(data[['Age']])
plt.xlabel('Age (years)')
plt.ylabel('count')
plt.show()