微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IPython Notebook和Pandas自动完成

我注意到如果我要键入df.column_name(),我可以使用IPython笔记本中的选项卡自动填充column_name.

现在,为列做某事的正确语法是df [‘column_name’],我无法自动完成(我假设因为它是一个字符串?).是否有任何其他符号或方式来简单地键入列名称.我正在寻找一种解决方案,允许我在此df [‘column_name’]中自动填充列名称.

解决方法:

我发现以下方法我有用.它基本上创建了一个namedtuplele,它包含数据框中所有变量的名称作为字符串.

例如,考虑以下数据框,其中包含名为“variable_1”和“variable_2”的2个变量:

from collections import namedtuple
from pandas import DataFrame
import numpy as np

df = DataFrame({'variable_1':np.arange(5),'variable_2':np.arange(5)})

以下代码创建一个名为“var”的namedtuple:

def ntuples():
    list_of_names = df.columns.values
    list_of_names_dict = {x:x for x in list_of_names}

    Varnames = namedtuple('Varnames', list_of_names) 
    return Varnames(**list_of_names_dict)

var = ntuples()

在笔记本中,当我写var.然后按Tab键,将显示数据框df中所有变量的名称.编写var.variable_1相当于编写’variable_1′.所以以下方法可行:df [var.variable_1].

我定义一个函数的原因是你经常会在数据框中添加新的变量.为了将新变量更新到你的namedtuple“var”,只需再次调用函数,ntuples(),你就可以了.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐