在熊猫的以下数据框中,有一列名为“grupo_edad”,该列的值为:
De 0 a 4 años, De 5 a 9 años, De 10 a 14 años, De 15 a 19 años, De 20 a 24 años,...,De 85 a 89 años, 90 y más años.
我想创建一个带有条件的新列,其中两个值:“de0a4años”和“de5a9años”采用相同的值,例如:0-9。其他的也一样
尝试在同一代码行中生成if语句时会出现问题。我已经这样做了:
df['nueva_columna']=df['grupo_edad'].apply(lambda x:
"0-9" if (x=="De 0 a 4 años" or x=="De 5 a 9 años") else
"10-19" if (x=="De 10 a 14 años" or x=="De 15 a 19 años") else
"20-29" if (x=="De 20 a 24 años" or x=="De 25 a 29 años") else
"30-39" if (x=="De 30 a 34 años" or x=="De 35 a 39 años") else
"40-49" if (x=="De 40 a 44 años" or x=="De 45 a 49 años") else
"50-59" if (x=="De 50 a 54 años" or x=="De 55 a 59 años") else
"60-69" if (x=="De 60 a 64 años" or x=="De 65 a 69 años") else
"70-79" if (x=="De 70 a 74 años" or x=="De 75 a 79 años") else "80+")
但是它没有正常工作(see image),它们都在工作,但在“10-19”、“70-79”和“80+”方面存在问题。所以我如何错误地理解if语句?很奇怪,有些很好用
提前感谢您的帮助
您应该检查前导/尾随空格。修复代码的一个简单方法是
str.strip()
:但是,使用
pd.cut
可以使代码更易于阅读:相关问题 更多 >
编程相关推荐