在对字符串执行操作时,大熊猫会施加浮动错误

时间:2018-10-31 20:09:58

标签: python pandas lambda

我有一个数据框,其中的列test包含测试名称,我正在使用该数据框提取一些有关编写测试等级的信息。因为我知道用于测试名称的字符串始终具有等级,作为我使用以下代码行提取数据之后的下一个数字:

df['Grade'] = df['test'].apply(lambda x: str(list(filter(str.isdigit, x[10:]))[0]))

但是,此行给出了TypeError: 'float' object is not subscriptable。现在,我应该注意,在运行此命令之前,我对df.dtypes进行了检查,并且列test被列为object。这是有道理的,因为测试名称的字符串类似于2015-2016_math_grade_7,所以熊猫不可能将其视为浮点数。

我已经检查了,并且测试名称是该列中的唯一数据,所以我不知道为什么会出现此类型错误。无论我将代码更改为什么,都会收到此错误,因为我需要在x[:10]之后执行字符串操作。 (我用过df['Grade'] = df['test'].apply(lambda x: str(re.sub("\D", "", str(x[:10]))))

我还应该指出,我以前使用过此代码,并且可以正常工作,但是由于某种原因,如果有帮助,它似乎会失败。

0 个答案:

没有答案