私はこれに似たデータフレームを持っています:
Price From To
300€ 2020-01-01 2020-01-07
250€ 2020-01-04 2020-01-08
150€ 2020-02-01 2020-02-04
350€ 2020-02-04 2020-02-08
そして、私は日付のリストを持っています。例えば:list = [2020-01-03, 2020-02-04]
日付がFrom
列と列の間にあるデータフレームの行のみを保持したいと思いTo
ます。
したがって、変換後、次のデータフレームが作成されます。
Price From To
300€ 2020-01-01 2020-01-07
150€ 2020-02-01 2020-02-04
350€ 2020-02-04 2020-02-08
最初に、適用でラムダを使用することを考えましたが、データセットが非常に大きいため、あまり効率的ではないと思いました。パンダでこれを行う簡単な方法はありますか?
結果は単一のデータフレームに含まれます
試してみましょうnumpy broadcasting
:
x, y = df[['From', 'To']].values.T
a = np.array(['2020-01-03', '2020-02-04'], dtype=np.datetime64)
mask = ((x[:, None] <= a) & (y[:, None] >= a)).any(1)
df[mask]
Price From To
0 300€ 2020-01-01 2020-01-07
2 150€ 2020-02-01 2020-02-04
3 350€ 2020-02-04 2020-02-08
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加