>

데이터 프레임 열 값을 다른 목록과 비교하여 데이터 프레임에서 인덱스 값을 추출하는 중에 문제가 발생했습니다.

list=[a,b,c,d]
  data frame
by comparing list with column X
   X Y Z 
0  a r t
1  e t y
2  c f h
3  d r t
4  b g q
this should return the index values like
  X
0 a
4 b
2 c
3 d
I tried this method
z=dataframe.loc[(dataframe['X'] == list)]

  • 답변 # 1

    isin 를 사용해야합니다  요소 목록과 비교할 때 :

    dataframe = pd.DataFrame(columns = ['X','Y','Z'])
    dataframe['X'] = ['a','e','c','d','b']
    dataframe['Y'] = ['r','t','f','r','g']
    dataframe['Z'] = ['t','y','h','y','k']
    mylist = ['a','b','c','d']
    
    

    (항상 질문에 데이터 프레임을 만드는 방법을 게시하면 응답하는 것이 더 빠릅니다)

    dataframe[dataframe['X'].isin(mylist)].X
    0    a
    2    c
    3    d
    4    b
    Name: X, dtype: object
    
    

  • 답변 # 2

    isin 를 사용해야합니다 :

    목록이 문자열 목록인지 확인한 다음 dropna 를 사용하십시오.  원하지 않는 행과 열을 제거합니다.

    list = ['a','b','c','d']
    df[df.isin(list)].dropna(how='all').dropna(axis=1)
    
    

    또는 X 열과 비교하고 싶을 경우

    df.X[df.X.isin(list)]
    
    

    출력 :

      X
    0  a
    2  c
    3  d
    4  b
    
    

관련 자료

  • 이전 django - 파이썬 - csv 버퍼 압축
  • 다음 javascript - 드롭 다운 스크롤 스타일 선택