met*_*rsk 5 python autocomplete pandas ipython-notebook
我注意到如果要输入df.column_name(),我可以column_name在IPython Notebook中的选项卡中自动完成。
现在,对列执行操作的正确语法是df['column_name'],在该处我无法自动完成(我假设是因为它是字符串?)。还有其他符号或方法可以简单地键入列名。我是essentailly,正在寻找一种解决方案,该解决方案可以让我在其中自动完成列名的制表符df['column_name']。
我发现以下方法对我很有用。它基本上创建一个namedtuple包含数据框中所有变量名称的字符串。
例如,考虑以下数据框,其中包含 2 个名为“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)})
Run Code Online (Sandbox Code Playgroud)
以下代码创建一个名为“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()
Run Code Online (Sandbox Code Playgroud)
在笔记本中,当我编写var.并按 Tab 时,df将显示数据框中所有变量的名称。写入var.variable_1相当于写入“variable_1”。因此,以下内容将起作用:df[var.variable_1].
我定义一个函数来执行此操作的原因是,您经常会向数据框中添加新变量。为了将新变量更新为您的命名元组“var”,只需再次调用该函数即可,ntuples()然后就可以了。
| 归档时间: |
|
| 查看次数: |
6088 次 |
| 最近记录: |