인프런 - 데이터 분석을 위한 판다스 - 섹션 6 - 연습문제

르네·2023년 10월 30일
0

Python

목록 보기
44/45

본 내용은 인프런 강의 <데이터 분석을 위한 판다스>를 수강하며 중요한 점을 정리한 글입니다.

kor_team.groupby('position')['player_name'].nunique()

- 코드 해석

kor_team: 데이터프레임의 이름입니다. 코드에서는 'kor_team'이라는 데이터프레임에서 작업한다고 가정합니다.

.groupby('position'): 'position' 열을 기준으로 데이터프레임을 그룹화합니다. 이렇게 하면 'position' 열의 각 고유한 값에 대한 그룹이 형성됩니다.

['player_name']: 그룹화된 결과에서 'player_name' 열을 선택합니다.

.nunique(): 선택된 'player_name' 열에서 중복되지 않는 고유한 값들의 개수를 계산합니다. 즉, 각 그룹에서의 고유한 선수 수를 반환합니다.

따라서, 이 코드는 'kor_team' 데이터프레임을 'position' 열을 기준으로 그룹화하고, 각 그룹에서 'player_name' 열의 고유한 값들의 개수를 계산하여 결과를 반환합니다. 결과는 Pandas Series로 반환되며, 각 포지션에 해당하는 고유한 선수 수를 나타냅니다.


team_rosters = pd.concat([kor_team, jpn_team], axis=0, keys = ['kor', 'jpn'])

코드해석

pd.concat([kor_team, jpn_team], axis=0, keys=['kor', 'jpn']): Pandas의 concat 함수를 사용하여 두 개의 데이터프레임인 'kor_team'과 'jpn_team'을 수직 방향(axis=0)으로 이어 붙입니다. keys 매개변수는 MultiIndex의 레벨에 대한 레이블을 지정합니다. 여기서는 'kor'와 'jpn'이라는 레이블을 가진 두 개의 레벨을 생성합니다.


team_rosters = team_rosters.reset_index(level=0)
team_rosters.tail()

코드해석

team_rosters.reset_index(level=0): reset_index 메서드를 사용하여 데이터프레임의 MultiIndex 중 첫 번째 레벨을 열(column)로 변환합니다. 여기서 level=0은 첫 번째 레벨을 의미하며, 이는 'kor' 또는 'jpn'이라는 값을 가집니다.

team_rosters.tail(): 변환된 데이터프레임의 마지막 부분을 출력합니다. tail() 함수는 데이터프레임의 끝에서부터 지정된 수의 행을 반환합니다.


team_rosters = team_rosters.rename(columns={'level_0' : 'team'})
team_rosters.sample()

코드해석

eam_rosters.rename(columns={'level_0': 'team'}): rename 메서드를 사용하여 데이터프레임의 열 이름 중에서 'level_0'이라는 열의 이름을 'team'으로 변경합니다. 이는 첫 번째 레벨의 MultiIndex가 'kor' 또는 'jpn'으로서 팀을 식별하게끔 한 이후의 작업입니다.

team_rosters.sample(): 변환된 데이터프레임에서 임의의 한 행을 샘플링하여 반환합니다. sample() 함수는 데이터프레임에서 임의의 행을 선택하는데 사용됩니다.


points_player = points.groupby(['action', 'action_team', 'player_no'])['rally'].nunique().reset_index()

코드해석

points: 데이터프레임의 이름으로 가정합니다. 코드에서는 'points'라는 데이터프레임에서 작업한다고 가정합니다.

.groupby(['action', 'action_team', 'player_no']): 'action', 'action_team', 'player_no' 열들을 기준으로 데이터프레임을 그룹화합니다. 이렇게 하면 이 세 가지 열의 조합에 따라 데이터가 그룹화됩니다.

['rally'].nunique(): 각 그룹에서 'rally' 열의 고유한 값의 수를 계산합니다. nunique() 함수는 중복을 제외한 고유한 값의 개수를 반환합니다.

.reset_index(): 그룹화된 결과를 다시 일반적인 데이터프레임 형태로 변환합니다. 이때, 인덱스를 초기화합니다.


player_name = team_rosters[['team', 'player_name', 'player_no']]
points_playter = points_player.merge(player_name, left_on = ['action_team', 'player_no'], right_on = ['team', 'player_no'])

코드해석

team_rosters[['team', 'player_name', 'player_no']]: 'team_rosters' 데이터프레임에서 'team', 'player_name', 'player_no' 열들을 선택합니다. 이를 player_name이라는 새로운 데이터프레임으로 할당합니다.

points_player.merge(player_name, left_on=['action_team', 'player_no'], right_on=['team', 'player_no']): merge 함수를 사용하여 'points_player'와 'player_name' 데이터프레임을 'action_team'과 'player_no' 열들을 기준으로 병합합니다.

left_on=['action_team', 'player_no']: 'points_player' 데이터프레임에서 병합할 때 사용할 열들을 지정합니다.
right_on=['team', 'player_no']: 'player_name' 데이터프레임에서 병합할 때 사용할 열들을 지정합니다.
결과적으로, points_player 데이터프레임에는 'action_team'과 'player_no' 열을 기준으로 'team', 'player_name'이라는 열이 추가되어 있습니다. 이러한 병합을 통해 플레이어의 팀과 이름에 관한 정보가 points_player에 추가되었습니다.


profile
데이터분석 공부로그

0개의 댓글