【跟着stackoverflow学Pandas】 -Get list from pandas DataFrame column headers - Pandas 获取列名

最近做一个系列博客,跟着stackoverflow学Pandas。

专栏地址:http://blog.csdn.net/column/details/16726.html

以 pandas作为关键词,在stackoverflow中进行搜索,随后安照 votes 数目进行排序:
https://stackoverflow.com/questions/tagged/pandas?sort=votes&pageSize=15

Get list from pandas DataFrame column headers - Pandas 获取列名

https://stackoverflow.com/questions/19482970/get-list-from-pandas-dataframe-column-headers

获取DataFrame的列名是一个比较简单的操作,又以下几个方法:

  1. [column for column in df]
  2. df.columns.values 返回 array, 可以通过 tolist(), 或者 list(array) 转换为list,一般 tolist()效率更高。
  3. list(df)
  4. df.columns 返回Index,可以通过 tolist(), 或者 list(array) 转换为list

时间测评

import pandas as pd
from numpy.random import randint
df = pd.DataFrame(columns=list('abcdefghij'))

%timeit [column for column in df]
# 100000 loops, best of 3: 3.04 µs per loop

%timeit df.columns.values.tolist()
# 1000000 loops, best of 3: 1.27 µs per loop

%timeit list(df.columns.values)
# 1000000 loops, best of 3: 1.6 µs per loop

%timeit list(df)
# 100000 loops, best of 3: 3.82 µs per loop

%timeit list(df.columns)
# 100000 loops, best of 3: 2.24 µs per loop

%timeit df.columns.tolist()
# 1000000 loops, best of 3: 1.77 µs per loop

可以发现,df.columns.values 的方法速度最快,特别是 用 tolist() 转换为list的方式。

你可能感兴趣的:(技术文档,python)