此问题在此处已有答案:
I'm getting an IndentationError (or a TabError). How do I fix it?(6个回答)
24天前关闭
我有以下Pandas的图片
Suburb Percentile Rank
Hume 0.20464135
Clayton 0.409162146
Moorabin 0.654550934
St Kilda 0.80464135
Point Cook 1.505447257
字符串
我想根据“Percentile Rank”列值创建一个名为Rank classifier的新列。
规则应该是这样的;
perc_rank <= 0.2 then 'Very Low',
perc_rank > 0.2 and perc_rank <= 0.4 then 'Low',
perc_rank > 0.4 and perc_rank <= 0.6 then 'Medium',
perc_rank > 0.6 and perc_rank <= 0.8 then 'High',
perc_rank > 0.8 and perc_rank <= 1.0 then 'Very High'
型
我能够在SQL中生成Classifier输出。但无法使用Python创建新列。
尝试了这个;
def Rank Classifier
if (perc_rank <= 0.2):
Rank Classifier = "Very Low"
elif (perc_rank > 2) & (perc_rank <= 0.4):
Rank Classifier = "Low"
elif (perc_rank > 0.4) & (perc_rank <= 0.6):
Rank Classifier = "Medium"
elif (perc_rank > 0.6) & (perc_rank <= 0.8):
Rank Classifier = "High"
elif (perc_rank > 8) & (perc_rank <=1 ):
Rank Classifier = "Very High"
else:
return Rank Classifier
型
收到错误
IndentationError:未匹配任何外部缩进级别
希望在名为“Rank Classifier”的新列中返回分类器数据
输出如下所示:
Suburb Percentile Rank Rank Classifier
Hume 0.20464135 Very Low
Clayton 0.409162146 Low
Moorabin 0.654550934 Medium
St Kilda 0.80464135 High
Point Cook 1.505447257 Very High
型
2条答案
按热度按时间3zwjbxry1#
而不是应用一个函数,看看使用pandas.cut。
下面的代码将给你给予你所期望的结果,但你可能需要调整的东西。
字符串
注意,就像我说的,上面的给予你想要的输出,你在问题中指出。
但是,我不确定所需的输出是否正确。
例如,
Hume
不应该被归类为Low
而不是Very Low
。另外,
Point Cook
怎么会有Percentile Rank
为1.505447257?我觉得你应该检查一下你的标准。
P.S. bin列表应该从0开始,最后一个值应该是1。
型
ukdjmx9f2#
尝试使用apply
字符串