将函数应用于数据框列?
Applying function to dataframe column?
我有以下功能(将列作为输入的单热编码功能)。我基本上想将它应用于我的数据框中的列,但似乎无法理解出了什么问题。
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)
猜猜我的调用方式有问题吗?
如果你想将它应用到那一列,你不需要制作一个新的数据框。这是正确的语法。 Please read the docs.
df['X'] = df['X'].apply(lambda x : dummies(x))
您需要确保您 return 从函数中获取值,目前您不是..当您将函数应用于列时,您基本上是在传递每一行的值函数中的列,所以你的函数设置错误..通常你会这样做:
def function1(value):
new_value = value*2 #some operation
return new_value
然后:
df['X'].apply(function1)
目前您的函数设置为获取整个 df 和列的名称,因此如果您这样调用它,您的函数可能会起作用:
df1 = dummies(df, 'X')
但您仍然需要添加 return 声明
我有以下功能(将列作为输入的单热编码功能)。我基本上想将它应用于我的数据框中的列,但似乎无法理解出了什么问题。
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)
猜猜我的调用方式有问题吗?
如果你想将它应用到那一列,你不需要制作一个新的数据框。这是正确的语法。 Please read the docs.
df['X'] = df['X'].apply(lambda x : dummies(x))
您需要确保您 return 从函数中获取值,目前您不是..当您将函数应用于列时,您基本上是在传递每一行的值函数中的列,所以你的函数设置错误..通常你会这样做:
def function1(value):
new_value = value*2 #some operation
return new_value
然后:
df['X'].apply(function1)
目前您的函数设置为获取整个 df 和列的名称,因此如果您这样调用它,您的函数可能会起作用:
df1 = dummies(df, 'X')
但您仍然需要添加 return 声明