我一直在尝试使用.loc方法向我的DataFrame添加一个新系列,如下所示
EM['Starting'] = EM.loc[(['Program_Start_Date']==Trimester_Start_Date)]
然而,我收到了以下错误,还没能弄清楚如何修复
KeyError: 'False: boolean label can not be used without a boolean index'
数据看起来是这样的,我的三月份日期等于2022-05-30,所以我应该会得到结果。
Program_Start_Date Course_Withdrawn_Date Program_Withdrawal_Date
0 2022-05-30 None None
1 2022-05-30 None None
2 2022-05-30 None None
3 2022-05-30 None None
4 2022-05-30 None None
.. ... ... ...
543 2021-02-01 None None
544 2021-02-01 None None
545 2019-05-27 2022-08-18 None
546 2019-05-27 2022-08-18 None
547 2019-05-27 2022-08-18 None
我本以为我会得到一个简单的正确正确正确正确…etc
作为我的结果,我尝试了一些不同的方法来创建一个系列,但到目前为止都没有成功。
因此,您试图将.loc()
与条件一起使用,因此它将返回True或False。除非索引也是True/False,否则这对.loc()
不起作用。
我想你可能想做的是过滤数据帧,它看起来像:
filter = [x==y for x,y in zip(EM.Program_Start_Date, EM.Trimester_Start_Date)]
EM_new = EM[filter]
";过滤器";变量是一个True/False列表,它被传递到EM中以选择哪些行进入EM_new。
希望能有所帮助!如果是,请投赞成票并接受我的解决方案=D