繁体   English   中英

如何在 function 中使用 lambda

[英]how to use lambda inside a function

我正在尝试创建一个 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' object 没有属性 '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) 只能在该列已经存在的情况下使用,在您的情况下,您正在创建一个新列并且您正在调用的属性在该 dataframe 上尚不存在。 所以你可以使用 df['new column name'] (x[variable])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM