Python TypeError:一元数~:'的操作数类型错误;非类型';

Python TypeError:一元数~:'的操作数类型错误;非类型';,python,Python,我发现了一个类似的帖子和教育链接(见下文),但我不确定如何将该帖子中的答案逻辑应用到我的代码行中 我的数据集如下所示 PT_FIN PT_DISCH_DISPO 1 HOME/SELF CARE OP 2 PARENT HOME/SELF CARE IP 3 Admitted as inpatient 4 LEFT WITHOUT TREATMENT .... 总共有100000多条记录,下面是PT\u DISCH\

我发现了一个类似的帖子和教育链接(见下文),但我不确定如何将该帖子中的答案逻辑应用到我的代码行中

我的数据集如下所示

PT_FIN    PT_DISCH_DISPO
1         HOME/SELF CARE OP 
2         PARENT HOME/SELF CARE IP 
3         Admitted as inpatient
4         LEFT WITHOUT TREATMENT  
....
总共有100000多条记录,下面是
PT\u DISCH\u DISPO
变量的响应选项的值计数:

HOME/SELF CARE OP                    201253
PARENT HOME/SELF CARE IP              15313
Admitted as inpatient                 13721
LEFT WITHOUT TREATMENT                 4633
TRANS TO OTHER FACILITY OP              608
ERROR REGISTRATION                      227
LEFT AGAINST MED ADVICE OP              181
DSCHRG/TRNSFR PSYCH IP                  134
EXPIRED OTHER                            64
EXPIRED NO AUTOPSY NEEDED                61
DISCH/TRANS to INPT REHAB FAC            33
TRANS TO ACUTE CARE HOSP IP              30
NO SHOW                                  27
EXPIRED W/ AUTOPSY                       25
OTHER IP                                 24
RELATIVE HOME IP                         19
TRANS TO ADULT FACILITY OP               13
LEFT AGAINST MED ADVICE IP               12
TRANSFERRED TO SNF IP                    11
3RD PARTY PAYOR REQUEST FOR TRANS        10
EXPIRED/CORONER'S CASE                    6
FOSTER HOME IP                            5
HOME UNDER HOME HEALTH CARE IP            4
ORGANIZED GROUP HOME IP                   4
REHABILITATION CENTER IP                  3
DISCHARGED TO SNF OP                      2
Against Medical Advice                    2
CORRECTIONAL FACILITY IP                  2
TRANS TO INTERMED CARE FAC IP             1
Expired other                             1
DEAD ON ARRIVAL                           1
这是一行非常简单的代码:

#removing strings from dataset "~" denotes do not keep 
TAT_v2 = TAT_v1[~TAT_v1.PT_DISCH_DISPO.str.contains("error|no show|left without treatment", case=False)] 
当我从2019年开始收集数据时,它运行良好,但当我扩展数据框以包含2018年的数据并运行这行代码时,我得到以下错误:

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\generic.py in __invert__(self)
   1540     def __invert__(self):
   1541         try:
-> 1542             arr = operator.inv(com.values_from_object(self))
   1543             return self.__array_wrap__(arr)
   1544         except Exception:

TypeError: bad operand type for unary ~: 'NoneType'
有人能告诉我为什么会发生这个错误,以及我怎样才能学会修复它吗?我收到这个错误是因为我的
PT\u DISCH\u DISPO
变量中有空值吗

非常感谢


据我所知,您的panda代码中的这一行
TAT_v1.PT_DISCH_DISPO.str.contains(“错误|不显示|未经处理就离开了”,case=False)
不知何故没有返回任何内容。
调查
文档可能有帮助

据我所知,您的panda代码,这一行
TAT_v1.PT_DISCH_DISPO.str.contains(“error | no show | left not treatment”,case=False)
以某种方式返回零。
调查
文档可能会有所帮助

啊,我所要做的就是在代码行中添加:
na=False

 TAT_v2 = TAT_v1[~TAT_v1.PT_DISCH_DISPO.str.contains("error|no show", na=False, case=False)] 

啊,我所要做的就是在我的代码行中添加:
na=False

 TAT_v2 = TAT_v1[~TAT_v1.PT_DISCH_DISPO.str.contains("error|no show", na=False, case=False)] 

~
运算符的操作数:
TAT_v1.PT_DISCH_DISPO.str.contains(“error | no show | left not treatment”,case=False)
的计算结果显然为无。如果没有一个示例,很难知道为什么会这样。@khelwood感谢您的反馈,请根据我们的建议查看上面的内容,因为我添加了一个数据帧的示例。您的
~
运算符的操作数:
TAT_v1.PT_DISCH_DISPO.str.contains(“error | no show | left not treatment”,case=False)
的计算结果显然为无。如果没有详细说明,很难知道为什么会这样。@khelwood感谢您的反馈,请根据我们的建议查看以上内容,因为我添加了一个数据框架的示例。