始める無料で始める

pandas インポートのカスタマイズ

pandas パッケージは、データサイエンティストがデータをインポートする際によく直面する問題、 たとえばフラットファイル内のコメント行、

空行、欠損値(NANaN)などを柔軟に処理できます。この章のまとめとして、破損した タイタニックデータセット titanic_corrupt.txt をインポートしましょう。このファイルには '#' という文字から始まるコメントが含まれており、タブ区切り形式になっています。

pd.read_csv() の主な引数は以下のとおりです。

  • sep:区切り文字を指定します。
    • デリミタには ',' を使います。
    • タブ区切りの場合は '\t' を使います。
  • comment:コメントの開始文字を指定します。その文字以降のテキストは無視されます。
  • na_valuesNA/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()
コードを編集して実行