我具有以下功能(采用列作为输入的单热编码功能)。我基本上想将其应用于数据框中的一列,但似乎无法理解出了什么问题。
def dummies(dataframe, col):
dataframe[col] = pd.Categorical(dataframe[col])
pd.concat([dataframe,pd.get_dummies(dataframe[col],prefix = 'c')],axis=1)
df1 = df['X'].apply(dummies)
猜错我怎么称呼它?
您需要确保要从函数中返回一个值,当前您不是。.此外,当您将函数应用于列时,基本上是将列中每一行的值传递给函数,因此您的函数是设置错误..通常您会这样做:
def function1(value):
new_value = value*2 #some operation
return new_value
然后:
df['X'].apply(function1)
当前,您的函数已设置为使用整个df和一列的名称,因此,如果您这样调用它,则函数可能会起作用:
df1 = dummies(df, 'X')
但是您仍然需要添加一个return语句
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句