我有一个像这样的熊猫数据框
let finalarr = []
for (i = 0; i <= 5; i++) {
let arr = [1, 2, 3, 4].sort(function(a, b) {
return 0.5 - Math.random()
})
finalarr.push(arr)
}
console.log(finalarr)
我想通过第二列的特定值(== A879)和日期的特定偏移量来过滤数据帧。例如,如果我的第二列值为A879,而我希望的日期为2015-01-15,则我希望第二列的所有具有A879的行都比2015-01-15早2天但少于5天。因此它应该看起来像。
2684 A878 2015-01-01 False M13
2685 A878 2015-01-01 False M50
2686 A879 2015-01-01 False M96
5735 A879 2015-01-02 False M19
... ... ... ... ...
89487 A879 2015-01-30 False M38
89488 A879 2015-01-30 False M35
89489 A879 2015-01-30 False M33
89490 A879 2015-01-30 True M66
89491 A879 2015-01-30 False M4
有没有很好的方法可以做到这一点?
答案 0 :(得分:1)
怎么样
import datetime as dt
REFERENCE_DATE = dt.date(2015, 1, 15)
df["date"] = pd.to_datetime(df["date"])
df[
df["date"].dt.date.between(
REFERENCE_DATE - dt.timedelta(days=5), REFERENCE_DATE - dt.timedelta(days=2)
)
& df["code"].eq("A879")
]
?