始める無料で始める

時系列のスライス

時系列では、日付範囲内のデータをフィルタリングすることがよくあるため、スライスが特に便利です。date 列をインデックスに設定し、.loc[] を使ってサブセット化を行います。ここで重要なのは、日付をISO 8601形式にしておくことです。つまり、年-月-日には "yyyy-mm-dd"、年-月には "yyyy-mm"、年のみには "yyyy" を使います。

第1章で見たように、& などの論理演算子を使うと、複数の真偽値条件を組み合わせることができます。これを1行のコードで行うには、各条件を括弧 () で囲む必要があります。

pandaspd として読み込まれており、インデックスが設定されていない temperatures がすでに用意されています。

この演習はコースの一部です

pandas によるデータ操作

コースを見る

演習の手順

  • .isin().loc[] ではなくBoolean条件を使い、完全な日付形式 "yyyy-mm-dd" を指定して、date 列が2010年から2011年までの範囲にある行に temperatures をサブセット化し、結果を出力しましょう。
  • temperatures のインデックスを date 列に設定し、並べ替えましょう。
  • .loc[] を使って、2010年から2011年までの範囲の行に temperatures_ind をサブセット化しましょう。
  • .loc[] を使って、August 2010 から February 2011 までの行に temperatures_ind をサブセット化しましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Use Boolean conditions to subset temperatures for rows in 2010 and 2011
temperatures_bool = ____[(____ >= ____) & (____ <= ____)]
print(temperatures_bool)

# Set date as the index and sort the index
temperatures_ind = temperatures.____.____

# Use .loc[] to subset temperatures_ind for rows in 2010 and 2011
print(____)

# Use .loc[] to subset temperatures_ind for rows from Aug 2010 to Feb 2011
print(____)
コードを編集して実行