PandasにおけるDataFrameを時間でフィルタリングする

スポンサーリンク

PandasにおけるDataFrameを時間でフィルタリングしてみます。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■DataFrameを作成する

PandasにおけるDataFrameで特定の行の値を取得する前に、DataFrameを作成します。

■コード

import pandas as pd

data = {
    'Name':['Yellow','Black','White','Purple','Pink'],
    'Time':['1998-01-21','1999-12-04','2010-07-23','2021-01-15','2007-05-25']
}

df = pd.DataFrame(data)

print(df)

インポートでPandasモジュールを呼び出します。dataという変数を作成し、その中に、今回は「Name」、「Time」という2つの行を追加し格納します。「Time」という列には、「yyyy-mm-dd」という日付/時間フォーマットで時間を記述しています。

■実行

このスクリプトを実行すると、作成したDataFrameが出力されます。

■DataFrameを時間でフィルタリングする

DataFrameの用意ができましたので、時間でフィルタリングするスクリプトを書いていきます。

■コード

import pandas as pd

data = {
    'Name':['Yellow','Black','White','Purple','Pink'],
    'Time':['1998-01-21','1999-12-04','2010-07-23','2021-01-15','2007-05-25']
}

df = pd.DataFrame(data)

time_df = df.loc[df["Time"] >= "2009-01-01"] 

print(time_df)

時間でフィルタリングする際は、dfという変数を作成し、格納したdataを元にDataFrameを作成。その後、time_dfという変数を作成し、loc()を使用し、DataFrameで要素を抽出します。今回はdataの内の「Time」という列を指定しています。

指定後、「Time」という列内の「2009-01-01」という日付、以上(>=)のものを論理演算子で抽出します。

抽出後、time_dfという変数に格納します。

格納後、print関数で抽出したものを出力します。

■実行

このスクリプトを「df_time_filtering_2.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、今回用意したDataFrame内の要素(時間)が抽出され、フィルタリングされたものが出力できることを確認できました。

コメント

タイトルとURLをコピーしました