Model: Default (GPT-3.5)
Avatar of the person chatting

1 / 1Pandas에서 데이터를 인덱싱 및 슬라이싱하는 것을 익힐 수 있는 문제와 그 예제코드를 실제 데이터를 바탕으로 10개 만들어줘. 먼저 실제 데이터를 제시해주고, 그 다음 문제를 먼저 알려주고, 마지막에 예제코드를 표시해줘. 예제 코드에는 주석으로 자세한 설명을 부탁해 Please write in Korean language.

네, Pandas에서 데이터를 인덱싱하고 슬라이싱하는 방법을 알려드리겠습니다. 이를 위해 실제 데이터와 함께 문제를 제시하겠습니다.

실제 데이터:

다음과 같이 5명의 학생들이 3과목의 성적을 받은 데이터가 있습니다.

이름국어영어수학
Alice857590
Bob908085
Charlie708075
David758580
Eva809085

문제:

  1. Alice의 성적을 모두 출력해보세요.
  2. Charlie의 수학 점수를 출력해보세요.
  3. Bob과 David의 영어 성적을 출력해보세요.
  4. 모든 학생의 수학 성적을 출력해보세요.
  5. Eva의 국어와 수학 점수를 출력해보세요.
  6. 모든 학생들의 성적 평균을 출력해보세요.
  7. 국어 성적이 80점 이상인 학생들의 정보를 출력해보세요.
  8. 수학 성적이 80점 이상이면서, 영어 성적이 85점 이상인 학생들의 정보를 출력해보세요.
  9. 영어 성적이 90점 이상인 학생들의 이름과 영어 성적을 출력해보세요.
  10. 각 학생들의 총점을 구하여 출력해보세요.

예제 코드:

pythonCopy code
import pandas as pd # 데이터 프레임 생성 df = pd.DataFrame({ '이름': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'], '국어': [85, 90, 70, 75, 80], '영어': [75, 80, 80, 85, 90], '수학': [90, 85, 75, 80, 85] }) # 1. Alice의 성적을 모두 출력 print(df.loc[df['이름'] == 'Alice']) # 2. Charlie의 수학 점수 출력 print(df.loc[df['이름'] == 'Charlie', '수학']) # 3. Bob과 David의 영어 성적 출력 print(df.loc[df['이름'].isin(['Bob', 'David']), '영어']) # 4. 모든 학생의 수학 성적 출력 print(df['수학']) # 5. Eva의 국어와 수학 점수 출력 print(df.loc[df['이름'] == 'Eva', ['국어', '수학']]) # 6. 모든 학생들의 성적 평균 출력 print(df.mean()) # 7. 국어 성적이 80점 이상인 학생들의 정보 출력 print(df
Avatar of the person chatting

1 / 1이어서 표시하되, 코드 블록이 끊기지 않게 해줘 Please write in Korean language.

네, 이어서 코드 블록이 끊기지 않게 해드리겠습니다.

pythonCopy code
# 7. 국어 성적이 80점 이상인 학생들의 정보 출력 print(df.loc[df['국어'] >= 80]) # 8. 수학 성적이 80점 이상이면서, 영어 성적이 85점 이상인 학생들의 정보 출력 print(df.loc[(df['수학'] >= 80) & (df['영어'] >= 85)]) # 9. 영어 성적이 90점 이상인 학생들의 이름과 영어 성적 출력 print(df.loc[df['영어'] >= 90, ['이름', '영어']]) # 10. 각 학생들의 총점을 구하여 출력 df['총점'] = df.sum(axis=1) print(df[['이름', '총점']])

각 문제마다 적절한 loc 함수를 사용하여 데이터를 추출하였습니다.

또한, 마지막 문제에서는 sum() 메서드를 이용하여 각 학생들의 성적 총점을 구한 후, ['이름', '총점'] 열만 출력하여 결과를 확인하였습니다.

Avatar of the person chatting

1 / 1기본 인덱싱과 iloc를 통한 풀이 방법도 표시해줘 Please write in Korean language.

네, 기본 인덱싱과 iloc를 사용하여 문제를 해결하는 방법도 알려드리겠습니다.

pythonCopy code
# 1. Alice의 성적을 모두 출력 print(df[df['이름'] == 'Alice']) # 2. Charlie의 수학 점수 출력 print(df.loc[2, '수학']) # 3. Bob과 David의 영어 성적 출력 print(df.loc[[1, 3], '영어']) # 4. 모든 학생의 수학 성적 출력 print(df['수학']) # 5. Eva의 국어와 수학 점수 출력 print(df.loc[4, ['국어', '수학']]) # 6. 모든 학생들의 성적 평균 출력 print(df.mean()) # 7. 국어 성적이 80점 이상인 학생들의 정보 출력 print(df[df['국어'] >= 80]) # 8. 수학 성적이 80점 이상이면서, 영어 성적이 85점 이상인 학생들의 정보 출력 print(df[(df['수학'] >= 80) & (df['영어'] >= 85)]) # 9. 영어 성적이 90점 이상인 학생들의 이름과 영어 성적 출력 print(df.loc[df['영어'] >= 90, ['이름', '영어']]) # 10. 각 학생들의 총점을 구하여 출력 df['총점'] = df.iloc[:, 1:].sum(axis=1) print(df[['이름', '총점']])

일부 문제에서는 loc를 사용한 방법과 동일하지만, 2번 문제와 10번 문제에서는 iloc를 사용하여 인덱스를 직접 지정하여 데이터를 추출하였습니다.

10번 문제에서는 iloc를 사용하여 iloc[:, 1:]과 같이 1번 인덱스부터 끝까지 슬라이싱하여 학생들의 성적 정보만 추출한 후, sum() 메서드를 이용하여 각 학생들의 총점을 계산하였습니다.