2
巨大なtimeseries DataFrame(約100,000,000行)があり、条件によって行をフィルタリングする必要があります。別のデータフレームの各行に各条件があります。このDataframeには約2000行があり、各行は条件です。 玩具例:条件が別のDataFrameの行である場合のDataFrameの行のフィルタリング
df = pd.DataFrame({val: [1, 3, 2, 4, 3, 1, 2, 3], date: [2015-03-12, 2015-04-12, 2015-05-13, 2016-03-12, 2016-04-07, 2016-05-12, 2017-01-11, 2017-03-20]})
df_condition = pd.DataFrame({val: [2, 3], date: [2015-07-13, 2016-04-08]})
条件valはdf_conditionの日付よりも早く表示される場所、DFにすべてのRAWを削除された約2000の条件
私はこの方法を使用する上
df = df[(df['val']==2) & (df['date']>'2015-07-13')]
df = df[(df['val']==3) & (df['date']>'2016-04-08')]
などを、しかしそれは長すぎる(約5時間)。より速い方法がありますか?
vals = df_condition.val.values
dates = vals = df_condition.dates.values
for i in range(len(df_condition)):
df = df[~((df.val==vals[i])&(df.date < dates[i]))]
とてもエレガントかつ迅速な方法をありがとう! –