Python 由于字符串中有短划线符号而获取密钥错误

Python 由于字符串中有短划线符号而获取密钥错误,python,pandas,Python,Pandas,我试图浏览大量数据文件,并选择符合我指定的某些切割的特定值。许多文件中都有破折号,即COSMOS-125。我认为python认为我正在尝试做一个减号,而不仅仅是一个字符串破折号 cuts='(红移>0.9)和(红移1.4)和(成员>0)和((集群!=COSMOS-125)|(集群!=COSMOS-221)|(集群!=COSMOS-28)\ |(集群!=COSMOS-63)|(集群!=SXDF49)|(集群!=SXDF64)|(集群!=SXDF76)|(集群!=SpARCS1033)|(集群!=S

我试图浏览大量数据文件,并选择符合我指定的某些切割的特定值。许多文件中都有破折号,即
COSMOS-125
。我认为python认为我正在尝试做一个减号,而不仅仅是一个字符串破折号

cuts='(红移>0.9)和(红移1.4)和(成员>0)和((集群!=COSMOS-125)|(集群!=COSMOS-221)|(集群!=COSMOS-28)\
|(集群!=COSMOS-63)|(集群!=SXDF49)|(集群!=SXDF64)|(集群!=SXDF76)|(集群!=SpARCS1033)|(集群!=SpARCS0034)|(集群!=SpARCS0036)|(集群!=SPARCS0015)|(集群!=SpARCS1047)|\
(群集!=SpARCS1613))'
集群切割基本上是说“忽略所有这些集群”,但我一直得到一个错误:

“关键错误‘宇宙’”

“未定义变量错误:未定义名称‘COSMOS’”

我知道没有定义只是
COSMOS
,因为有很多
COSMOS
文件,但我认为它忽略了
-125
-221


如何解决此问题?

我不确定您在这里做什么以及如何解决此问题,但您可以尝试将文件名置于引号之间,如下所示:

cuts = '(Redshift>0.9) & (Redshift<1.5) & ((Redshift_Quality==3)|(Redshift_Quality==4)) & (D4000>1.4) & (member>0) & ((Cluster != "COSMOS-125")|(Cluster != "COSMOS-221")|(Cluster !="COSMOS-28")\
|(Cluster != "COSMOS-63")|(Cluster != "SXDF49")|(Cluster != "SXDF64")|(Cluster != "SXDF76" )|(Cluster != "SpARCS1033")|(Cluster != "SpARCS0034")|(Cluster != "SpARCS0036")|(Cluster != "SpARCS0215")|(Cluster != "SpARCS1047")|\
(Cluster != "SpARCS1613"))'
 
cuts='(红移>0.9)和(红移1.4)和(成员>0)和((集群!=“COSMOS-125”)|(集群!=“COSMOS-221”)|(集群!=“COSMOS-28”)\
|(集群!=“COSMOS-63”)|(集群!=“SXDF49”)|(集群!=“SXDF64”)|(集群!=“SXDF76”)|(集群!=“SpARCS1033”)|(集群!=“SpARCS0034”)|(集群!=“SpARCS0036”)|(集群!=“SPARCS015”)|(集群!=“SpARCS1047”)|\
(群集!=“SpARCS1613”)”

抱歉,忘记添加实际执行切割的功能。但是你的解决方案奏效了!非常感谢。