为什么我会有打字错误?

2024-05-19 22:10:53 发布

您现在位置:Python中文网/ 问答频道 /正文

抱歉,如果这是一个愚蠢的问题,但我试图弄清楚,但无法通过它

我有一个名为data of pandas dataframe的字典 数据['class\u size']包含以下数据

CSD    SCHOOL CODE    SCHOOL NAME
1      M015           P.S. 015 Roberto Clemente
1      M019           P.S. 019 Asher Levy
1      M019           P.S. 019 Asher Levy
.      ....           ..........
.      ....           ..........
and many more

我尝试使用以下lambda函数作为pandas.apply()参数,如果CSD列的长度为1,则用0填充它

data['class_size']['padded_csd'] = data["class_size"]["CSD"].apply(lambda x: str(x).zfill(2) if len(str(x)) == 1 else x )

它确实工作得很好,但是在使用了连接之后,即

data['class_size']['DBN'] = data['class_size']['padded_csd'] + data['class_size']['SCHOOL CODE']

我的打字错误是

unsupported operand type(s) for '+' 'int' and'str'

我甚至检查了“padded\u csd”和“SCHOOL CODE”两列的类型,它们都是字符串,那么为什么会出现类型错误呢?你知道吗

提前谢谢你的帮助

p.S.我知道我可以创建一个函数并使用它来代替lambda,它甚至可以工作,但由于某些原因,我真的必须使用lambda函数


Tags: 数据lambda函数pandasdatasizecodeclass