2013-06-21 3 views
127

데이터 프레임의 인덱스 열을 배열로 가져 오는 방법을 알고 있습니까? 나는 Pandas로 가져온 CSV 파일의 "Accession"열에 수락 번호 목록을 가지고 있으며, 가져 오는 동안 색인을 "Accession"열로 설정했습니다. 이제는 "Accession"열을 나중에 레이블 집합으로해야하지만 독립형으로 추출하는 방법을 알지 못합니다.팬더 - 데이터 프레임 인덱스를 배열로 얻는 방법

답변

173

당신은 values 속성을 사용한다 :

In [1]: df = pd.DataFrame(index=['a', 'b']) 

In [2]: df.index.values 
Out[2]: array(['a', 'b'], dtype=object) 

이 데이터가 이미 저장되는 방법에 액세스하므로 변환 필요가 없습니다.
참고 :이 속성은 다른 많은 팬더 개체에서도 사용할 수 있습니다.

+0

이 방법을 사용하면 인덱스의 순서가 유지됩니다. –

+5

@DonovanThomson 예! –

47

df.index을 사용하여 색인 개체에 액세스 한 다음 df.index.tolist()을 사용하여 목록에서 값을 가져올 수 있습니다.

+0

그것은 instanceMethod을 반환하지 목록 배열 –

+4

@VShreyas, 어떻게 df.index.values.tolist'에 대한의 요소 여야

df.index.get_level_values('name_sub_index') 

로 물론 name_sub_index의이 작업을 수행 할 수 있습니다)' – LancelotHolmes

+0

괜찮을 것입니다. –

14

팬더 0.13 이후 당신은 또한 get_values를 사용할 수 있습니다

df.index.get_values() 
+4

this와 .values ​​사이에 차이가 있습니까? (이 함수는 0.13.0 문서에서 나왔으므로 버전 정보를 업데이트했습니다.) –

+0

@Andy Hayden : .get_values는 현재 값만 가져 오는 공식적인 방법입니다. 예를 들어, 인덱스)는 행 또는 열이 삭제 된 인덱스 값을 반환 할 수 있습니까? –

+0

@EzekielKruglick 그래서 항상 사본입니까? 문서에 링크 된 것은 매우 가벼운 데, 나는 당신이 그와 같은 속물을 안다고 생각하지 않았습니다. (비록 MI에 .values에 없을지라도) 이것을 증명하는 예제를 보는 것이 좋을 것입니다! –

24

당신이 다중 색인 dataframe를 처리하는 경우, 당신은 다중 인덱스의 하나의 이름 만 열을 추출에 관심이있을 수 있습니다. 있습니다 (FrozenListdf.index.names

관련 문제