2つの日付の間のDataFrameの行を選択する
以下のようにcsvからDataFrameを作成しています。
stock = pd.read_csv('data_in/' + filename + '.csv', skipinitialspace=True)
このDataFrameには日付の列があります。指定された日付の範囲内、または指定された2つの日付の間にある日付の値を持つ行のみを含む新しいDataFrameを作成する(または既存のDataFrameを上書きする)方法はありますか?
163
3
解決策は2つあります。
df.loc[mask]
を使用します。df[start_date : end_date]
を使用する。ブーリアンマスクを使用する。
df['date']
がdtype
datetime64[ns]`のSeriesであることを確認します。ブーリアンマスクを作成します。start_date
と
end_dateには、
datetime.datetimeを使用できます。 start_date
とend_date
は、datetime.datetime
、np.datetime64
、pd.Timestamp
、またはdatetimeの文字列です。ロック機能を使うよりも、ダイレクトチェックを使うのがベストな選択だと感じています。
date
列に対して、以下のように
isinメソッドを使うことができます。
df[df["date"].isin(pd.date_range(start_date, end_date))]`。Note: これは(質問にあるように)日付でのみ動作し、タイムスタンプでは動作しません。
例:
となります。