Python 在伊皮顿与熊猫的自动完成似乎被打破了

Python 在伊皮顿与熊猫的自动完成似乎被打破了,python,pandas,autocomplete,ipython,Python,Pandas,Autocomplete,Ipython,我有一个名为frame 我想调用框架[somecoulmname].value\u counts()方法 问题是,即使我在之后键入v,ipython也不会自动完成 事实上,它甚至没有回复任何建议 但是如果我只是简单地键入系列。然后按tab键,它会返回我正在寻找的可能方法 我的问题是为什么iPython的行为是这样的?不过PyCharm也是这样 在此方面的任何帮助都将不胜感激。谢谢这不是熊猫特有的 IPython无法知道/猜测通过运行frame[somecoulmname]返回的对象的类型,除非实

我有一个名为frame

我想调用
框架[somecoulmname].value\u counts()
方法

问题是,即使我在之后键入v,ipython也不会自动完成 事实上,它甚至没有回复任何建议

但是如果我只是简单地键入系列。然后按tab键,它会返回我正在寻找的可能方法

我的问题是为什么iPython的行为是这样的?不过PyCharm也是这样


在此方面的任何帮助都将不胜感激。谢谢

这不是熊猫特有的

IPython无法知道/猜测通过运行
frame[somecoulmname]
返回的对象的类型,除非实际运行它。因为它也不能假设运行它是安全的/快速的/等等,所以它不运行它

因为它不知道对象的类型,所以不能为它建议完成

系列。
之所以有效,是因为不需要猜测。IPython知道
Series
是一个类型,因此它可以解析其成员

解决方案是将临时值分配给变量:

s = frame[SomeCoulmnname]
s.v<TAB>
s=frame[somecoulmname]
s、 五

ok..所以您建议我必须存储
frame[somecolumnname]的结果
每次我都尝试了另一个变量,它也起作用了……但我觉得它太沉重了,因为我是一名学习者:)我把这个答案标记为正确的……因为它起作用了:)……我也很想听听其他可能的解决方案……谢谢shx2:)如果您的列名是有效的Python标识符,您可以像
frame.SomeColumnname.value\u counts()
那样访问它,这样IPython将为它提供制表符补全功能。