**编辑:**此问题经过大量编辑,因为在运行附加测试后,原始问题无效。
对于大约有100万行和13列的DataFrame,请使用以下任一方法获取列名:
print(df.columns)
df.columns
df.columns.values
非常慢(25秒)。这种情况仅当我在控制台中键入上述代码时才会发生。在缓慢执行完成后,接下来的几次运行将是即时的。
如果我保存为脚本并运行脚本,那么所有三个操作都不需要时间就可以完成。似乎是我的IDE的问题。
我正在macOS Ventura上使用DataSpell 2022.2.3和python 3.9.5以及Pandas1.4.4。
2条答案
按热度按时间q5iwbnjs1#
这是因为这两个
print
语句实际上都没有打印整个Series,而是打印了它的一个表示:意志输出
正如你所看到的,第二种表示法要小得多,因此打印起来更快,而且它不打印辅助数据,如列名、类型等。
如果在进行一些简单计算时测量性能差异,您会发现差异并不大:
一个二个一个一个
mtb9vblg2#
我认为因为
df.columns.values
只返回Numpy数组,所以应该更快,而不是使用可能包含MultiIndex的pandas.core.indexes.base.Index
考虑和扫描整个DataFrame。