选择日期之间的熊猫数据框行并设置列值

时间:2019-04-22 02:47:57

标签: python pandas

在下面的数据框中,我希望将p50列中的行值设置为NaN,如果它们在2018年5月15日至8月15日之间小于2.0。

                  date       p50
2018-03-02 2018-03-02       NaN
2018-03-03 2018-03-03       NaN
2018-03-04 2018-03-04  0.022590
2018-03-05 2018-03-05       NaN
2018-03-06 2018-03-06 -0.042227
2018-03-07 2018-03-07       NaN
2018-03-08 2018-03-08       NaN
2018-03-09 2018-03-09 -0.028646
2018-03-10 2018-03-10       NaN
2018-03-11 2018-03-11 -0.045244
2018-03-12 2018-03-12       NaN
2018-03-13 2018-03-13       NaN
2018-03-14 2018-03-14 -0.020590
2018-03-15 2018-03-15       NaN
2018-03-16 2018-03-16 -0.028317
2018-03-17 2018-03-17       NaN
2018-03-18 2018-03-18       NaN
2018-03-19 2018-03-19       NaN
2018-03-20 2018-03-20       NaN
2018-03-21 2018-03-21       NaN
2018-03-22 2018-03-22       NaN
2018-03-23 2018-03-23       NaN
2018-03-24 2018-03-24 -0.066800
2018-03-25 2018-03-25       NaN
2018-03-26 2018-03-26 -0.104135
2018-03-27 2018-03-27       NaN
2018-03-28 2018-03-28       NaN
2018-03-29 2018-03-29 -0.115200
2018-03-30 2018-03-30       NaN
2018-03-31 2018-03-31 -0.000455
               ...       ...
2018-07-03 2018-07-03       NaN
2018-07-04 2018-07-04  2.313035
2018-07-05 2018-07-05       NaN
2018-07-06 2018-07-06       NaN
2018-07-07 2018-07-07       NaN
2018-07-08 2018-07-08       NaN
2018-07-09 2018-07-09  0.054513
2018-07-10 2018-07-10       NaN
2018-07-11 2018-07-11       NaN
2018-07-12 2018-07-12  3.711159
2018-07-13 2018-07-13       NaN
2018-07-14 2018-07-14  6.583810
2018-07-15 2018-07-15       NaN
2018-07-16 2018-07-16       NaN
2018-07-17 2018-07-17  0.070182
2018-07-18 2018-07-18       NaN
2018-07-19 2018-07-19  3.688812
2018-07-20 2018-07-20       NaN
2018-07-21 2018-07-21       NaN
2018-07-22 2018-07-22  0.876552
2018-07-23 2018-07-23       NaN
2018-07-24 2018-07-24  1.077895
2018-07-25 2018-07-25       NaN
2018-07-26 2018-07-26       NaN
2018-07-27 2018-07-27  3.802159
2018-07-28 2018-07-28       NaN
2018-07-29 2018-07-29  0.077402
2018-07-30 2018-07-30       NaN
2018-07-31 2018-07-31       NaN
2018-08-01 2018-08-01  3.202214

数据框具有日期时间索引。我做的事:

mask = (group['date'] > '2018-5-15') & (group['date'] <= '2018-8-15')
group[mask].loc[group[mask]['p50'] < 2.]['p50'] = np.NaN

但是,这不会更新数据框。该如何解决?

1 个答案:

答案 0 :(得分:2)

我认为您应该像

一样使用.loc
mask = (group['date'] > '2018-5-15') & (group['date'] <= '2018-8-15')
group.loc[mask&(group['p50'] < 2),'p50']=np.nan