传递熊猫数据框属性的Python函数不起作用

时间:2019-04-30 08:54:11

标签: python pandas function

这是一个简单的例子。

d=pd.DataFrame({'a':[1,2,3,4],
                'b':[6,6,7,8]})

我写了一个函数f(x),我想打印d.x.功能是:

def f(x):
  print(d.x)

运行f(a)。我希望它能打印d.a

但是它返回NameError: name 'a' is not defined。 我该如何解决?

2 个答案:

答案 0 :(得分:4)

您无法以这种方式进行处理,您需要一个通过[ ]获取列的函数,并同时输入一个字符串:

def f(x):
    print(d[x])

并称之为:

f('a')

答案 1 :(得分:-1)

如果您尝试通过本地x函数传递数据帧,则必须编写x.a

def f(x):
  print(x.a)

但是如果您传递列名,并且dataframe是全局变量,则可以在下面使用

 def f(x):
   print(d[x])