python - 프레임 - 판다 스 열 인덱싱




pandas DataFrame 열 헤더에서 목록 가져 오기 (12)

노트북에서

IPython 노트북의 데이터 탐색을 위해 필자가 선호하는 방법은 다음과 같습니다.

sorted(df)

알파벳 순서로 된 목록을 읽기 쉽게 만들어줍니다.

코드 저장소에서

코드에서 나는 그것을 더 명백하게한다.

df.columns

그것은 당신이하고있는 것을 당신의 코드를 읽는 다른 사람들에게 알려주기 때문입니다.

pandas DataFrame에서 열 머리글 목록을 가져오고 싶습니다. DataFrame은 사용자 입력에서 나올 것이므로 얼마나 많은 열이있을 것인지, 아니면 호출 될 것인지 알 수 없을 것입니다.

예를 들어, 다음과 같은 DataFrame이 주어진 경우 :

>>> my_dataframe
    y  gdp  cap
0   1    2    5
1   2    3    9
2   8    7    2
3   3    4    7
4   6    7    7
5   4    8    3
6   8    2    8
7   9    9   10
8   6    6    4
9  10   10    7

아래 목록과 같은 목록을 얻고 싶습니다.

>>> header_list
[y, gdp, cap]

가장 뛰어난 성능을 지닌 메소드가 내장되어 있습니다.

my_dataframe.columns.values.tolist()

.columnsIndex 반환하고, .columns.valuesarray 을 반환하며 이것은 list 을 반환하는 도우미 함수 .columns.values .

편집하다

입력을 싫어하는 사람들에게는 아마도 가장 짧은 방법 일 것입니다.

list(df)

다음을 수행하여 값을 목록으로 가져올 수 있습니다.

list(my_dataframe.columns.values)

또한 다음과 같이 간단하게 사용할 수 있습니다.

list(my_dataframe)

몇 가지 빠른 테스트 및 아마도 dataframe.columns.values.tolist() 사용하는 내장 버전이 가장 빠릅니다.

In [1]: %timeit [column for column in df]
1000 loops, best of 3: 81.6 µs per loop

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

In [3]: %timeit list(df)
10000 loops, best of 3: 44.9 µs per loop

In [4]: % timeit list(df.columns.values)
10000 loops, best of 3: 38.4 µs per loop

(나는 여전히 list(dataframe) 정말 좋아한다. 덕분에 EdChum!)


색인 속성을 사용할 수 있습니다.

df = pd.DataFrame({'col1' : np.random.randn(3), 'col2' : np.random.randn(3)},
                 index=['a', 'b', 'c'])

시므온 비서가 대답했다.

list(my_dataframe.columns.values) 

또는

list(my_dataframe) # for less typing.

하지만 가장 좋은 점은 다음과 같다고 생각합니다.

list(my_dataframe.columns)

그것은 불필요하게 길지 않은 동시에 명시 적입니다.


이렇게하면 목록에있는 열의 이름이 표시됩니다.

list(my_dataframe.columns)

tolist ()라는 또 다른 함수도 사용할 수 있습니다.

my_dataframe.columns.tolist()

질문에 대한 추가 설명이 필요하다고 생각합니다.

@fixxxer가 언급했듯이 응답은 프로젝트에서 사용중인 판다 버전에 따라 다릅니다. pd.__version__ 명령으로 얻을 수있는 것.

만약 당신이 나 같은 어떤 이유로 든 (0.14.1을 사용하는 데비안 jessie에서) 판다의 이전 버전을 0.16.0 이상 사용한다면 다음을 사용해야합니다 :

df.keys().tolist() 메소드가 아직 구현되어 있지 않기 때문에 df.keys().tolist() df.columns .

이 키 방식의 장점은 새 버전의 판다에서도 작동한다는 점입니다. 따라서 더 보편적입니다.


DataFrame 은 개체의 "키"를 반복하는 dict-like 규칙을 따릅니다.

my_dataframe.keys()

키 / 열 목록 만들기 - 객체 메소드 to_list() 및 파이썬 적 방법

my_dataframe.keys().to_list()
list(my_dataframe.keys())

DataFrame의 pandas.pydata.org/pandas-docs/stable/basics.html#iteration 은 열 레이블을 반환합니다.

[column for column in my_dataframe]

DataFrame을 목록으로 변환하지 말고 열 레이블을 가져옵니다. 편리한 코드 샘플을 찾는 동안 생각을 멈추지 마십시오.

xlarge = pd.DataFrame(np.arange(100000000).reshape(10000,10000))
list(xlarge) #compute time and memory consumption depend on dataframe size - O(N)
list(xlarge.keys()) #constant time operation - O(1)

my_dataframe.columns 사용할 수 있습니다.


list(a_dataframe)

이것은 그것을해야한다!


n = []
for i in my_dataframe.columns:
    n.append(i)
print n




dataframe