使用变量查询数据框中的列

时间:2017-10-19 10:27:36

标签: python pandas

我编写了一个方法,用于提取数据框rawDatabase,验证列表“validationLists”以及字段或列名称,以便将验证应用于数据库。

代码如下:

rawDatabase = GetStandardisedField(rawDatabase,validationLists,"Status")


def GetStandardisedField(rawDatabase,validationLists,field):
    print('Standardising ', field,' ...')

    my_list = validationLists[field]

    l1=[]
    print(rawDatabase.head())
    for x in rawDatabase.field:
        print('here')
        choice = process.extractOne(x, my_list)[0]
        l1.append(choice)

    rawDatabase['choice']=l1
    rawDatabase[field] = rawDatabase['choice']
    del rawDatabase['choice']

    return rawDatabase 

在以前版本的代码中,我使用了实际的字段名称,例如:

for x in rawDatabase.Status:

这曾经工作正常,但为了让我的代码可重用和简单,我把它重写为:

for x in rawDatabase.field:  

代码停止在'here'运行,我想知道Python是否允许你使用变量来选择数据框中的列

非常感谢任何帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

DataFrame['column_name'] - 是访问DataFrame列的首选语法,与DataFrame.column_name进行比较,因为它允许您:

  • 使用变量。示例:col='Col1'; df[col]
  • 将列名称作为数字
  • 列名包含空格/制表符
  • 具有影响Numpy / Pandas方法名称的列名称 - 例如:count,'mean',max等。注意:不要使用此类名称 - 这是一种不好的风格