我有一个如下所示的数据框,
+-----------+-------+----------+--+--+
| Date | OPP | Result | | |
+-----------+-------+----------+--+--+
| Sat 11/16 | @DAL | L110-102 | | |
+-----------+-------+----------+--+--+
| Wed 11/13 | @POR | W114-106 | | |
+-----------+-------+----------+--+--+
| Mon 11/11 | @LAC | L98-88 | | |
+-----------+-------+----------+--+--+
| Sun 11/10 | @LAL | W113-104 | | |
+-----------+-------+----------+--+--+
| Fri 11/8 | @NO | W122-104 | | |
+-----------+-------+----------+--+--+
| Wed 11/6 | vsSAC | W124-120 | | |
+-----------+-------+----------+--+--+
| Sat 11/2 | @MIL | L115-105 | | |
+-----------+-------+----------+--+--+
我正在尝试过滤日期 > _____ 。
即,这是我尝试过的,但不会过滤所有大于 Sun 11/10 的日期
d1 = d1[(d1['日期'] > '11/10 星期日')]
更新
我的专栏现在看起来像这样,我需要能够过滤 New_Date > _____ 并排除“NaT”。尝试 d1[(d1['New_Date'] > '2019-11-01')]
但不起作用。
0 2019-11-20
1 2019-11-18
2 2019-11-16
3 2019-11-13
4 2019-11-11
5 2019-11-10
6 2019-11-08
7 2019-11-06
8 2019-11-02
9 2019-11-01
10 2019-10-30
11 2019-10-28
12 2019-10-26
13 2019-10-01
14 NaT
15 NaT
16 2019-10-18
17 2019-10-13
18 2019-10-10
19 2019-10-08
20 NaT
21 NaT
如有任何帮助,我们将不胜感激。
最佳答案
首先,您需要将日期转换为正确的 datetime
对象,提供正确的输入格式(我假设是 <weekday> <month>/<day>
- 您可以按照 datetime
文档调整它: https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior )。您可以通过以下方式完成:
df["Date_2"]=pd.to_datetime(df["Date"].astype(str), format="%a %m/%d")
然后使用 python datetime.strptime()
对过滤条件进行类比变换方法:
from datetime import datetime
df.loc[df["Date_2"]>datetime.strptime("Thu 11/12", "%a %m/%d")]
所以整个例子:
import pandas as pd
from datetime import datetime
df=pd.DataFrame({"Date": ["Sat 11/16", "Fri 11/8", "Wed 11/13"], "x": [4,3,7]})
df["Date_2"]=pd.to_datetime(df["Date"].astype(str), format="%a %m/%d")
print("\nExample filtered: ")
print(df.loc[df["Date_2"]>datetime.strptime("Thu 11/12", "%a %m/%d")])
print("\nThe whole thing:")
print(df)
并输出:
Example filtered:
Date x Date_2
0 Sat 11/16 4 1900-11-16
2 Wed 11/13 7 1900-11-13
The whole thing:
Date x Date_2
0 Sat 11/16 4 1900-11-16
1 Fri 11/8 3 1900-11-08
2 Wed 11/13 7 1900-11-13
(由于未提供年份,因此假定为 1900
)
关于python - Pandas 过滤日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58904112/