Is pandas.DataFrame.columns.values.tolist() the same as pandas.DataFrame.columns.tolist()
我们的代码库中都弹出了两个代码
1 2 | pandas.DataFrame.columns.values.tolist() pandas.DataFrame.columns.tolist() |
这些总是一样的吗?我不知道为什么
反省一点似乎意味着值只是一些实现细节的numpy.ndarray
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | >>> 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'] |
输出是相同的,但如果真正大的
1 2 3 4 5 6 7 8 9 10 | 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 |
还使用不同的功能:
带numpy.ndarray.tolist的
感谢
1 2 | In [93]: %timeit list(df.columns.values) 1000 loops, best of 3: 169 μs per loop |
1 | d = pandas.DataFrame( { 'a' : [1,2,3], 'b' : [0,1,3]} ) |
或者你可以简单地
1 2 3 4 5 6 | list(d)# it is same with d.columns.tolist() Out[327]: ['a', 'b'] # Time % timeit list(df) # after run the time , this is the slowest on my side . 10000 loops, best of 3: 135 μs per loop |