해당 글은 코드잇 강의를 참고하여 작성되었습니다.
- 큰 DataFrame 살펴보기
DataFrame명.head(개수) | 위에서부터 개수만큼의 row를 보여줌 |
DataFrame명.tail(개수) | 아래에서부터 개수만큼의 row를 보여줌 |
DataFrame명.shape | 행열의 크기를 보여줌 |
DataFrame명.columns | column을 보여줌 |
DataFrame명.info() | column에 대한 정보를 보여줌 |
DataFrame명.describe() | column의 통계 정보를 보여줌 |
DataFrame명.sort_values(by='column명', ascending=False) →inplace 사용해야 원래의 값도 변화 |
하나의 column을 기준으로 정렬(ascending 안쓰면 오름차순) |
- 큰 Series 살펴보기
DataFrame명.['column명'].unique() | 중복되지 않는 column 종류를 보여줌 |
DataFrame명.['column명'].value_counts() | 해당 column이 총 몇 번 나왔는지를 보여줌 |
DataFrame명.['column명'].describe() | column들의 정보를 보여줌 |
- 코드잇 대학교 : 강의실 배정하기
문제 :
이전 과제에서 강의실 크기에 따라 “room assignment” column을 만들어 주었습니다.이제 이 “room assignment”에 따라 강의실 이름을 붙여주려고 합니다.아래 세 가지 조건을 만족하도록 코드를 작성하세요.같은 크기의 강의실이 필요한 과목에 대해 알파벳 순서대로 방 번호를 배정하세요. 예를 들어 Auditorium이 필요한 과목으로 “arts”, “commerce”, “science” 세 과목이 있다면, “arts”는 “Auditorium-1”, “commerce”는 “Auditorium-2”, “science”는 “Auditorium-3” 순서로 방 배정이 되어야 합니다.“status” column이 “not allowed”인 수강생은 “room assignment” column을 그대로 “not assigned”로 남겨둡니다.“room assignment” column의 이름을 “room number”로 바꿔주세요.
정답 :
import pandas as pd df = pd.read_csv('data/enrolment_3.csv') # 코드를 작성하세요. # 과목별 인원 가져오기 allowed = df["status"] == "allowed" course_counts = df.loc[allowed, "course name"].value_counts() # 각 강의실 규모에 해당되는 과목 리스트 만들기 auditorium_list = list(course_counts[course_counts >= 80].index) large_room_list = list(course_counts[(80 > course_counts) & (course_counts >= 40)].index) medium_room_list = list(course_counts[(40 > course_counts) & (course_counts >= 15)].index) small_room_list = list(course_counts[(15 > course_counts) & (course_counts > 4)].index) # 강의실 이름 붙이기 for i in range(len(auditorium_list)): df.loc[(df["course name"] == sorted(auditorium_list)[i]) & allowed,"room assignment"] = "Auditorium-" + str(i+1) for i in range(len(large_room_list)): df.loc[(df["course name"] == sorted(large_room_list)[i]) & allowed,"room assignment"] = "Large-" + str(i+1) for i in range(len(medium_room_list)): df.loc[(df["course name"] == sorted(medium_room_list)[i]) & allowed,"room assignment"] = "Medium-" + str(i+1) for i in range(len(small_room_list)): df.loc[(df["course name"] == sorted(small_room_list)[i]) & allowed,"room assignment"] = "Small-" + str(i+1) # column 이름 바꾸기 df.rename(columns={"room assignment" : "room number"}, inplace = True) # 정답 출력 df
'데이터 > 데이터사이언스입문' 카테고리의 다른 글
3.2 Seaborn 시각화 (0) | 2021.07.09 |
---|---|
3.1 시각화와 그래프 (0) | 2021.07.09 |
2.2 데이터 변형하기 (0) | 2021.07.07 |
2.1 DataFrame 인덱싱 (0) | 2021.07.07 |
1.4 Pandas (0) | 2021.07.07 |