繁体   English   中英

IPython Notebook和Pandas自动完成

[英]IPython Notebook and Pandas autocomplete

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

现在,对列执行操作的正确语法将是df['column_name'] ,在该位置我无法自动完成(我假设是因为它是字符串?)。 还有其他符号或方法可以简单地键入列名。 我正在esentailly寻找一种解决方案,该解决方案允许我在此df['column_name'] Tab键自动完成列名。

我发现以下方法对我有用。 它基本上会创建一个namedtuple其中包含数据框中所有变量的名称作为字符串。

例如,考虑以下包含两个名为“ variable_1”和“ variable_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”的命名元组:

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() ,就可以了。

我不确定您的数据如何放置,但是在导入csv / txt文件时,我会指定列表中各列的名称,例如...

names = ['col_1', 'col_2', 'col_3']

等等...然后像这样导入我的文件...

import pandas as pd
data = pd.read_csv('./some_file.txt', header = True, delimiter = '\t', names = names)

然后,您可以像这样...

new_thing = data[names[1]]

在开始键入“名称”时您将在选项卡上单击,然后您所要做的就是指定所需的“名称”项。 我不确定这是否更有效率,然后只需输入单词即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM