猿问

使用 Pandas 按列值过滤

我在熊猫中有一个日期数据框,我想过滤它,使“date_id”介于“start_date”和“end_date”之间


     date_id    start_date  end_date

0   2010-06-04  2008-08-01  2008-09-26

1   2010-06-04  2008-08-01  2008-09-26

2   2010-06-04  2008-08-01  2008-09-26

3   2010-06-04  2008-08-26  2008-10-26

4   2010-06-04  2010-05-01  2010-09-26

5   2010-06-04  2008-08-01  2008-09-26

6   2010-06-04  2008-08-01  2008-09-26

7   2010-09-04  2010-08-01  2010-09-26

我试过使用下面的代码:


df[(df['date_id'] >= df['start_date'] & df['date_id']<= df['end_date')]

上面的代码导致关键错误。我是一个新的熊猫用户,所以任何帮助/文档都会非常有帮助。


Smart猫小萌
浏览 220回答 3
3回答

波斯汪

之间可以使用!df['date_id'].between(df['start_date'],df['end_date_y'])并过滤,只需使用 .locdf.loc[df['date_id'].between(df['start_date'],df['end_date_y'])]&nbsp; &nbsp; &nbsp;date_id start_date end_date_y4 2010-06-04 2010-05-01 2010-09-267 2010-09-04 2010-08-01 2010-09-26

千巷猫影

您还可以query用作:df.query("start_date <= date_id <=&nbsp; end_date_y")&nbsp; &nbsp; date_id&nbsp; &nbsp; &nbsp;start_date&nbsp; end_date_y4&nbsp; &nbsp;2010-06-04&nbsp; 2010-05-01&nbsp; 2010-09-267&nbsp; &nbsp;2010-09-04&nbsp; 2010-08-01&nbsp; 2010-09-26
随时随地看视频慕课网APP

相关分类

Python
我要回答