为Pandas数据帧创建一个具有布尔值但具有非布尔索引的新系列



我一直在尝试使用.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

相关内容

  • 没有找到相关文章

最新更新