如果满足某些条件,如何删除行(Python)

时间:2017-08-02 14:15:52

标签: python sql database pandas dataframe

我通过合并2个数据帧并删除重复行来创建数据帧。是否有一个命令允许我通过删除特定列的日期低于今天的日期/已过期的行来进一步过滤此数据框?

1 个答案:

答案 0 :(得分:1)

使用boolean indexingquery,但需要反转条件 - 过滤当前及更高的值:

rng = pd.date_range('2017-08-01', periods=10)
df = pd.DataFrame({'Date': rng, 'a': range(10)})  
print (df)
        Date  a
0 2017-08-01  0
1 2017-08-02  1
2 2017-08-03  2
3 2017-08-04  3
4 2017-08-05  4
5 2017-08-06  5
6 2017-08-07  6
7 2017-08-08  7
8 2017-08-09  8
9 2017-08-10  9
df1 = df[df['Date'] >= pd.datetime.today()]
print (df1)
        Date  a
2 2017-08-03  2
3 2017-08-04  3
4 2017-08-05  4
5 2017-08-06  5
6 2017-08-07  6
7 2017-08-08  7
8 2017-08-09  8
9 2017-08-10  9

date_today = pd.datetime.today()
df1 = df.query("Date >=@date_today")
print (df1)
        Date  a
2 2017-08-03  2
3 2017-08-04  3
4 2017-08-05  4
5 2017-08-06  5
6 2017-08-07  6
7 2017-08-08  7
8 2017-08-09  8
9 2017-08-10  9