我得到以下代码的这个错误
def cleaning(CURRENT,STRING,NEXT):
data.ix[data[NEXT].str.contains(STRING,na=False),CURRENT] =...
data[NEXT][data[NEXT].str.contains(STRING,na=False)]
d = ['lower','Less']
c = a[5:]
for x,y in zip(range(len(c)),d):
cleaning(c[x],d,c[x+1])
cleaning(c[x],d,c[x+2])
在这里,数据是一个pandas数据帧。 但是对于同一个函数,下面的代码中没有错误
^{pr2}$我知道这是因为我们不能使用列表作为dict中的键,但我不确定这是怎么发生的,为什么它对一个循环有效,而对另一个循环无效。在
您正在传递
d
,一个列表,作为STRING
参数:第二个示例可以工作,而是传入
^{pr2}$y
,它是b
列表中的单个元素:默认情况下,
pandas.Series.str.contains
方法接受regex,re.compile
使用字典作为缓存来保存已编译的模式。因为您传入了一个列表,所以会出现错误:修复方法是传入
y
,而不是d
:您可能需要想出更好的变量名;一个字母的名称很难区分,很容易导致这样的错误。在
相关问题 更多 >
编程相关推荐