我快要疯了,因为无论我做什么,我就是不知道出了什么问题。
问题:
我有一个df。其中一栏是:Opnameduur。这是 int64 类型。
我的 def 创建了一个名为:Klasse 的新列。这工作正常。但是....根据 df.Opnameduur 列中找到的值,该函数应该在相应行中写入一个 bin (dag, kort, middel, long (witch 是荷兰语,表示日、短、中、长)新专栏 df.Klasse。
已创建列 df.Klasse,但 df.KLasse 中的所有值均设置为:dag。
我只是不明白这里出了什么问题......
df.Opnameduur.head()
给出:
0 1
1 1
2 9
3 1
4 3
因此,前两行应给出:dag,在 df.Klasse 中,第三行应给出:long。ETC。
但是,我的 def 在整个新列 df.Klasse 中设置了“dag”。
我自己没看到就觉得自己很蠢。所以..我需要你的帮助!这是我的功能:
def Klasse(df):
for index, value in df.Opnameduur.items():
if value == 1:
df['Klasse'] = 'dag'
elif value == 2:
df['Klasse'] = 'kort'
elif value == 3:
df['Klasse'] = 'kort'
elif value == 4:
df['Klasse'] = 'middel'
elif value == 5:
df['Klasse'] = 'middel'
elif value == 6:
df['Klasse'] = 'middel'
elif value >= 7:
df['Klasse'] = 'lang'
else:
df['Klasse'] = 'onbekend'
我现在已经读过有关 pandas.cut 的内容,但在深入研究之前,我想先了解一下我在这里犯的错误(应该是......)非常简单的 if、elif、else。
提前致谢!!!问候简
婷婷同学_
相关分类