gpt4 book ai didi

python - pandas.DataFrame.columns.values.tolist() 和 pandas.DataFrame.columns.tolist() 一样吗

转载 作者:太空宇宙 更新时间:2023-11-04 07:32:15 25 4
gpt4 key购买 nike

我们的代码库中都弹出了这两个代码

pandas.DataFrame.columns.values.tolist()
pandas.DataFrame.columns.tolist()

这些总是相同的吗?我不确定为什么 values 变体会在它出现的地方弹出,似乎直接 columns.tolist() 就是获取列名所需的全部内容。如果是这种情况,我希望稍微清理一下代码。

有点内省(introspection)似乎表明值只是一些实现细节是一个 numpy.ndarray

>>> import pandas
>>> d = pandas.DataFrame( { 'a' : [1,2,3], 'b' : [0,1,3]} )
>>> d
a b
0 1 0
1 2 1
2 3 3
>>> type(d.columns)
<class 'pandas.core.indexes.base.Index'>
>>> type(d.columns.values)
<class 'numpy.ndarray'>
>>> type(d.columns.tolist())
<class 'list'>
>>> type(d.columns.values.tolist())
<class 'list'>
>>> d.columns.values
array(['a', 'b'], dtype=object)
>>> d.columns.values.tolist()
['a', 'b']
>>> d.columns
Index(['a', 'b'], dtype='object')
>>> d.columns.tolist()
['a', 'b']

最佳答案

输出是一样的,但是如果真的很大 df 时间是不同的:

np.random.seed(23)
df = pd.DataFrame(np.random.randint(3, size=(5,10000)))
df.columns = df.columns.astype(str)
print (df)

In [90]: %timeit df.columns.values.tolist()
10000 loops, best of 3: 79.5 µs per loop

In [91]: %timeit df.columns.tolist()
10000 loops, best of 3: 173 µs per loop

还使用了不同的函数:

Index.valuesnumpy.ndarray.tolist

Index.tolist

谢谢 Mitch另一种解决方案:

In [93]: %timeit list(df.columns.values)
1000 loops, best of 3: 169 µs per loop

关于python - pandas.DataFrame.columns.values.tolist() 和 pandas.DataFrame.columns.tolist() 一样吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45152534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com