Py学习  »  Python

python函数给出错误“name error:name'marks'未定义”

rajesh • 4 年前 • 760 次点击  

python函数:

我有如下数据框中的数据( 数据帧-合并内部 )

RollNo Name Marks
1      ABC  90
2      DEF  91
3      XYZ  92

现在我需要找到标记日志

为此我写了一个函数

def transform(data,var):
    data[Var + '_log'] = data.var.apply(np.log)

但在运行函数时

transform(merged_inner,Marks)

出现以下错误:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-50-b4ba711b77de> in <module>()
----> 1 transform(merged_inner,Marks)

NameError: name 'Marks' is not defined

但数据框里有标记。我不知道为什么我会犯这个错误?

请建议

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44040
 
760 次点击  
文章 [ 4 ]  |  最新文章 4 年前
Sagar Dubey
Reply   •   1 楼
Sagar Dubey    4 年前
def transform(data,var):
   df[var + '_log'] = df[var].apply(np.log)

transform(merged_inner,'Marks')

有两个错误,首先是标记是字符串,所以它应该在引号内,使用DF[var ]代替DF.var。

ModS
Reply   •   2 楼
ModS    4 年前
transform(merged_inner,Marks)

上面的标记是未定义的变量。 试着把它当作字符串传递

shubham
Reply   •   3 楼
shubham    4 年前

你可以这样做:

import pandas as pd
import numpy as np

d = {'RollNo':[1,2,3],'Name':['ABC','DEF','XYZ'],'Marks':[90,91,92]}
dd = pd.DataFrame.from_dict(d)
def transform(data,var):
    data[var + '_log'] = data[var].apply(np.log)
transform(dd,'Marks')

艾斯

smci
Reply   •   4 楼
smci    4 年前

“marks”是一个字符串。必须传递字符串:

transform(merged_inner, 'Marks')