>

여기서 목표는 팬더의 데이터 프레임을 재구성하고 PowerBI에 새 데이터 프레임을로드하고 PowerBI Veen 다이어그램을 사용하는 것입니다.

Ven Diagram은 특정 형식이 필요하며 팬더를 통해 구하기가 쉽지 않습니다. "npwhere"기능을 통해 원하는 데이터 세트를 얻을 수 있지만 매우 집중적이고 많은 코드 인 것 같습니다.

원하는 결과를 얻는 다른 방법이 있습니까?

내 데이터 세트 :

import pandas as pd
df1 = pd.DataFrame({'Name': ['A0', 'A1', 'A2', 'A3','A4','A5'],
                'Social': ['0', '0', '2', '3','2', '3'],
                  'Math': ['0', '1', '2', '3','2', '3'],
                   'Science': ['0', '0', '4', '3','2', '3'],
                   'Computers':['0', '0', '0', '0','2', '3']})
df1

원하는 데이터 세트는 다음과 같습니다 :

df2 = pd.DataFrame({'Number_of_Students': ['1', '1', '2', '2'],
                'Social': ['NO', 'NO', 'Yes', 'Yes'],
                  'Math': ['NO', 'Yes', 'Yes', 'Yes'],
                   'Science': ['NO', 'NO', 'Yes', 'Yes'],
                   'Computers':['NO', 'NO', 'NO', 'Yes']})
df2

출력 설명 : 결과적으로 발생 횟수 또는 이름을 숫자로 요약 이 예에서는

  • 사회, 수학, 과학, 컴퓨터 '0'= 1 명의 학생
  • 소셜 = 0, 수학은 0 이상, 과학 및 컴퓨터는 0 이상 = 1 명의 학생
  • 사회, 수학, 과학은 0보다 많고 컴퓨터는 0 = 2 명입니다

  • 사회, 수학, 과학 및 컴퓨터는 0 = 2 명 이상입니다


  • 답변 # 1

    할 수있는

    df1.loc[:,'Social':]=df1.loc[:,'Social':].ne('0').replace({False:'NO',True:'Yes'})
    df=df1.groupby(df1.columns[1:].tolist()).Name.count().reset_index()
    df
      Social Math Science Computers  Name
    0     NO   NO      NO        NO     1
    1     NO  Yes      NO        NO     1
    2    Yes  Yes     Yes        NO     2
    3    Yes  Yes     Yes       Yes     2
    
    

관련 자료

  • 이전 java - android - 사용자 언어로 현재 요일 (월요일 등)을 얻는 방법은 무엇입니까?
  • 다음 data structures - 자바 이진 트리 재귀 삽입