如何在函数中使用 lambda
how to use lambda inside a function
我正在尝试创建一个函数来对数据框的列执行操作,但最后它给了我一个错误,因为在定义 lambda x: x.variable 时,变量从字面上理解它,如何我应该分配它的价值吗? x 中的变量。
import pandas as pd
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
def example(dataFrame, variable):
dataFrame= dataFrame.assign(newColumn= lambda x: x.variable**2)
example(df,'col1')
AttributeError: 'DataFrame' 对象没有属性 'variable'
我该如何解决这个问题?
将 lambda 中的 x.variable 更改为 x[variable]
def example(dataFrame, variable):
dataFrame = dataFrame.assign(newColumn = lambda x: x[variable]**2)
return dataFrame # you probably want to return the dataFrame as well
example(df,'col1')
df.column_name (x.variable) 仅当该列已经存在时才能使用,在您的情况下,您正在创建一个新列并且您正在调用的 属性 不存在那个数据框呢。所以你可以使用 df['new column name'] (x[variable])
我正在尝试创建一个函数来对数据框的列执行操作,但最后它给了我一个错误,因为在定义 lambda x: x.variable 时,变量从字面上理解它,如何我应该分配它的价值吗? x 中的变量。
import pandas as pd
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
def example(dataFrame, variable):
dataFrame= dataFrame.assign(newColumn= lambda x: x.variable**2)
example(df,'col1')
AttributeError: 'DataFrame' 对象没有属性 'variable'
我该如何解决这个问题?
将 lambda 中的 x.variable 更改为 x[variable]
def example(dataFrame, variable):
dataFrame = dataFrame.assign(newColumn = lambda x: x[variable]**2)
return dataFrame # you probably want to return the dataFrame as well
example(df,'col1')
df.column_name (x.variable) 仅当该列已经存在时才能使用,在您的情况下,您正在创建一个新列并且您正在调用的 属性 不存在那个数据框呢。所以你可以使用 df['new column name'] (x[variable])