2017-11-08 4 views
-1

팬더 매트릭스에서 특정 행을 선택하고 행 값이 1 인 열 머리글 제목을 얻으려고합니다. 예 : 행 GAO (CSV)의 경우 1 미만 4 헤더가 있습니다 " 보도 자료 ","정책 ","정책 요약 ","백서 "(마지막 두 헤더는 사용자에게 표시되지 않습니다.) 그래서 헤더 변수를 List 변수에 저장하고 싶습니다.팬더 iloc 및 인덱스 오류

enter image description here .This 내가이는 CSV file입니다

def csvTomatrix(): 

    matrixData = pd.read_csv("contentParameter.csv",index_col=[0]) 
    print(type(matrixData)) 
    print (matrixData.loc["CRS"]) 

을 사용하고있는 코드입니다.

참고 : python3.6을 사용하고 있습니다.

+0

당신은'pandas' 첫 번째 치료하라고 적이 없다 그래서 'Source/Content' 지금 색인이라고 가정 열을 인덱스로 사용하면이 오류가 발생합니다. 보십시오'matrixData = pd.read_csv ("contentParameter.csv", index_col = [0])'. 기본적으로 자동으로 'RangeIndex' 유형의 인덱스를 생성합니다. – EdChum

+0

매력처럼 작동합니다. 이 질문은 무엇입니까? index_col = [0]. 우리는 어디에도 정의하지 않았기 때문에. 사전 정의 되었습니까? – Hayat

+0

인덱스 위치 또는 인덱스로 취급 할 열의 이름을 param 값으로 전달할 수 있습니다. 내 대답은 아래를 참조하십시오. 또한 이미지에 대한 링크를 게시하지 마십시오. 텍스트 형식의 코드를 선호합니다. – EdChum

답변

2

님의 첫 번째 열은 인덱스입니다 pandas 말한 적이 없다, 기본이 자동으로

matrixData = pd.read_csv("contentParameter.csv", index_col=[0]) 

또는

matrixData = pd.read_csv("contentParameter.csv", index_col='Source\Content') 

당신을 위해 하나를 생성하려고합니다.

loclabel 기반 인덱스를 사용하고,이 ilocpositional 기반 인덱스를 사용한다. 당신이 matrixData.iloc[0] 다음이 당신이 만나는 값의 부울 마스크를 생성 할 수 있습니다 당신의 마지막 질문에 대답하려면 첫 번째 행

을 반환했을 않은 경우 라벨 'CRS'이 존재하지 않는 것처럼

matrixData.loc["CRS"]KeyError를 제기 기둥을 가리는 기준

df.loc['GAO'] == 1.0 

부울 마스크를 생성합니다, 우리는 컬럼에 대해 마스크하려면이 옵션을 사용할 수 있습니다 :

df.columns[df.loc['GAO'] == 1.0] 
+0

값이 1 인 열의 머리글을 원한다고 가정 할 경우 어떻게해야합니까? – Hayat

+0

@Hayat 죄송합니다. 질문을 이해할 수 없습니다. 질문을 편집 할 수 있습니까 – EdChum

+0

CSV 파일을 참조하여 그 값이 1 인 해당 열의 제목을 가져 오려고합니다. 예 : "보도 자료"와 "성명"의 GAO 값은 1입니다. 변수에 thses 2 제목을 저장하십시오. – Hayat