Python 字符串和日期条件

Python 字符串和日期条件,python,Python,我想选择具有两个条件的行: D栏是星期一。 B列日期比C列日期早7或8天。 我的意思是,我想得到这些行: data = [{'A':"re", "B": 120630, "C": 120630, "D": "Sunday"}, {'A':"aeg", "B": 121228, "C": 130104, "D": "Monday"}, {'A':"aab", "B": 120601, "C": 120608, "D": "Sunday"}, {'A':"bbe", "B": 120925, "C"

我想选择具有两个条件的行:

D栏是星期一。 B列日期比C列日期早7或8天。 我的意思是,我想得到这些行:

data = [{'A':"re", "B": 120630, "C": 120630, "D": "Sunday"}, {'A':"aeg", "B": 121228, "C": 130104, "D": "Monday"}, {'A':"aab", "B": 120601, "C": 120608, "D": "Sunday"}, {'A':"bbe", "B": 120925, "C": 120630, "D": "Monday"}, {'A':"feh", "B": 120726, "C": 120803, "D": "Monday"}, {'A':"dd", "B": 120622, "C": 120630, "D": "Monday"}]
df = pd.DataFrame(data)
df["B"] = pd.to_datetime (df["B"], format="%y%m%d")
df["C"] = pd.to_datetime (df["C"], format="%y%m%d")
我试过:

aeg 2012-12-28 2013-01-04  Monday

feh 2012-07-26 2012-08-03  Monday

dd  2012-06-22 2012-06-30  Monday
但该代码不满足第二个条件,即B列日期为C列日期前7或8天

还有别的想法吗? 谢谢。

这是一种方法

df[(df["D"] == "Monday") & (df["B"] < df["C"])]

欢迎来到SO。请同时指定您已经尝试过的内容?如果你还没有尝试过任何东西,请开始,然后在遇到困难时问一个问题。请提供一些代码。请花点时间阅读
df.loc[(df["D"] == "Monday") & (df["B"] - df["C"]).dt.days.isin({-7, -8})]

#      A          B          C       D
# 1  aeg 2012-12-28 2013-01-04  Monday
# 4  feh 2012-07-26 2012-08-03  Monday
# 5   dd 2012-06-22 2012-06-30  Monday