有没有办法在 VSCode 编辑器或交互模式中自动完成 pandas 数据框列?

FAM*_*AMG 19 python pandas visual-studio-code

我正在使用 VScode 和交互模式来交互式编写 python 脚本。有什么方法可以自动完成 pandas 列名称,最好是在编辑器或交互式窗口中。目前其中任何一个都在工作。

我只能找到这个相关的帖子,该帖子已关闭而没有解决问题:https ://github.com/microsoft/vscode-jupyter/issues/1561

我还尝试回滚到此处建议的交互模式的旧实现: https: //github.com/microsoft/vscode-jupyter/issues/6995但这也不起作用。

欢迎任何解决此问题的建议,因为 VSCode 的其余部分似乎都非常棒。

Odd*_*spa 6

这个问题让我掉进了兔子洞!

我从来没有真正意识到这是一个问题,因为我通常使用 jupyter 笔记本。无论如何,关于这个主题的新线程在这里开始了!该线程最终在此PR中添加了一个新的配置参数"jupyter.enableExtendedKernelCompletions"。您可以通过转到设置并在搜索栏中输入“jupyter”来找到该设置。注意:正如 @wjandrea 在评论中指出的那样,此设置仅更改内核用于检查自动完成的模块,而不是 Jupyter 服务器,并且与处理大型数据集时的一些内核问题有关。

jupyter.enableExtendedKernelCompletions

此设置对我来说不是必需的,因为我已经在交互式窗口中自动完成了它,但它已关闭。但它可能会对你有所帮助。

编辑器中 pylance 的屏幕截图

因此,我开始研究为什么*.py仍然不支持文件中列名的自动完成,并调查是否有任何替代方案。AI 代码助手似乎可以通过静态代码分析来了解存在哪些列名称,例如 Tabnine。

Tabnine 代码助手

不过,对于这样一个微不足道的用例来说,这可能有点过分了。每月 12 美元的费用也无济于事。

Spyder 是 VSCode 的替代品。然而它是为 Python 设计的,这可能不是你想要的。

Spyder集成开发环境

通过静态代码分析支持字典键,但不知道字典的状态。

字典自动完成

整个过程归结为,当在单元格中创建 DataFrame 时,jupyter 服务器可以访问它,该服务器可以跟踪列名称、值等。在完成此操作之前,解释器不知道对象中有什么,它只知道它是一个 Pandas.DataFrame。因此,我看不到*.py文件中很快完成的列名称补全(没有人工智能伴侣)。

加载文件没有代码完成

TL;DR:列名补全功能可在交互式窗口中使用,但可能很快不会在纯 Python 文件中使用。

希望能给一些见解:)