社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

rajesh • 5 年前 • 1593 次点击  

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
 
1593 次点击  
文章 [ 4 ]  |  最新文章 5 年前
Sagar Dubey
Reply   •   1 楼
Sagar Dubey    5 年前
def transform(data,var):
   df[var + '_log'] = df[var].apply(np.log)

transform(merged_inner,'Marks')

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

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

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

shubham
Reply   •   3 楼
shubham    5 年前

你可以这样做:

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    5 年前

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

transform(merged_inner, 'Marks')