如果这是一个愚蠢的问题,请提前告诉我,但我试图找出并且无法通过
我有一个名为pandas dataframe数据的字典,其中 数据[' class_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()参数,如果长度为1,则将CSD列填充为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']
我收到的TypeError为
' +'不支持的操作数类型' INT'和' STR'
我甚至检查了两列的类型" padded_csd"和" SCHOOL CODE",它们都是字符串,那么为什么会出现TypeError?
提前感谢您提供任何帮助
P.S。我知道我可以创建一个函数并在那里使用而不是lambda它甚至可以工作但是由于某些原因我真的必须使用lambda函数
答案 0 :(得分:3)
尝试
data['class_size']['padded_csd'] = data["class_size"]["CSD"].apply(lambda x: str(x).zfill(2) if len(str(x)) == 1 else str(x) ) #Update else str(x)