import pandas as pd df = pd.read_csv('data6-1-2.csv') # print(df.head()) df['전교생'] = df['1학년'] + df['2학년'] + df['3학년'] + df['4학년'] + df['5학년'] + df['6학년'] df['교사당학생수'] = df['전교생'] // df['교사수'] print(df.sort_values('교사당학생수', ascending=False)) # 19 답은 당연히 동일하게 나오는데요! iloc, loc 사용 않고 별도 컬럼 추가해주면서 계산하는 방식도 또 하나의 풀이 과정으로 볼 수 있겠죠? 살짝 하드코딩 느낌이 나서 여쭤봅니다
안녕하세요 ㅎㅎ 좋은 강의 제공해주셔서 감사합니다. 추상 클래스와 인터페이스 사용 시점에 대해 궁금한 것이 있습니다. 제가 처음에 생각한 내용은 추상 클래스 : 부모 클래스와 자식 클래스가 공통으로 제공하는 내용(메서드) 도 존재하지만, 자식클래스 별로 다른 내용 을 제공할 때는 abstract 메서드를 사용하여 구현을 강제시킨다. 인터페이스 : 부모와 자식 간에 공통으로 가지는 내용(메서드 내용이 동일한) 이 없으므로, 상속받는 클래스가 반드시 메서드를 구현한다. 그런데 JAVA8부터 인터페이스에 default 메서드 가 추가되었더군요. 인터페이스에 default 메서드를 선언하면, 인터페이스를 상속받는 클래스에서 구현을 하지 않고도 사용할 수 있더라구요. interface Shape { final int SIZE = 5; void render(); default int getSize() { return SIZE; } } class Rectangle implements Shape { @Override public void render() { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { buffer.append("*\t"); } buffer.append("\n"); } System.out.println(buffer); } } public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int input = sc.nextInt(); Shape shape; if (input == 0) { shape = new Rectangle(); } else { shape = new Triangle(); } shape.render(); System.out.println(shape.getSize()); } } 그렇다면 default 메서드가 추상 클래스의 일반 메서드(추상 클래스가 아닌)와 동일하게 작동하게 되는데 public abstract class Shape { public static final int SIZE = 5; public abstract void render(); public int getSize() { return SIZE; } } 추상 클래스와 인터페이스를 사용하는 시기(?)를 어떻게 구별해야할까요? 구글링을 해보니 인터페이스에 default 메서드가 추가된 이유가 추후에 인터페이스에 새로운 메서드를 추가했을 때, 해당 인터페이스를 상속하고 있는 클래스에서 오류가 발생하지 않기 위해서라고 하는데 그 오픈소스가 엄청 유명해져서 전 세계 사람들이 다 사용하고 있는데, 인터페이스에 새로운 메소드를 만들어야 하는 상황이 발생했다. 자칫 잘못하면 내가 만든 오픈소스를 사용한 사람들은 전부 오류가 발생하고 수정을 해야 하는 일이 발생할 수도 있다. 이럴 때 사용하는 것이 바로 default 메소드다. 결론적으로 내용을 정리하게 되면 추상 클래스에서 새로운 메서드를 추가해야 한다면 abstract를 추가하지 않는다. 인터페이스에서 새로운 메서드를 추가해야 한다면 default 메서드를 사용한다. default 메서드가 추가 되면서 추상 클래스와 인터페이스를 언제 사용해야 하는지 잘 모르겠습니다...! 감사합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. <form th:action="@{/items/new}" th:object="${form}" method="post"> <form role="form" action="/members/new" th:object="${memberForm}" method="post"> 첫번째는 상품등록 폼의 action이 th태그로 사용된경우 두번째는 회원등폭 폼의 action이 그냥 사용된경우입니다. 상품,회원의 @getMapping createForm과 @postMapping create의 경로가 같기때문에(member/new, items/new) 저는 위의 2개의 form.html 에있는 action을 action=""으로 둘다 설정했는데 저렇게 따로 하는 이유가 있을까요 ? 제가 배운 기억으로는 경로가 같으면 action="" 이렇게 사용하면 처음 요청했던곳으로 다시 post요청한다고 알고있어서요
3번 문제 코딩을 #f3의 결측치 0, silver는 1, gold는 2, vip는 3으로 반환 후 총 합을 정수형으로 출력 df.head() df=df['f3'].fillna(0) df.replace('silver',1).replace('gold',2).replace('vip',3) 이런 방법으로 풀어나갈 수 있는 방법은 없을까요?
구글 코랩에서 사용 중인데, 파일 업로드 어떻게 하나요? 코드에 import pandas as pd df = pd.read _csv("type1_data1.csv") df = pd.read _csv(" https://raw.githubusercontent.com/lovedlim/bigdata_analyst_cert/main/part1/ch3/type1_data1.csv ") 이렇게 붙여넣기 했는데 이렇게 하는게아닌가요? 드래그앤드롭 하라고 하셨는데 어디다 드래그앤드롭 하라는 건가요?ㅠ
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세 여기서 계속 오류가 납니다 그리고 궁금한게 있는데요 데이터가 세개일때는 train으로 합쳐줘야해서 concat해서 df를 만든것이 train 데이터가 되는거 아닌가요? df=pd.concat([X_train,y_train['Reached.on.Time_Y.N']],axis=1) df 위에 코드처럼 df를 만들면 저게 train으로 해서 뒤에 쓰여야 할것 같은데 뒤에라벨인코딩 할 때 왜 df[col]=le.fit_transform(X_train[col])가 아니고 X_train[col]=le.fit_transform(X_train[col])l]) 이렇게 되는지 잘 모르겠어요... df는 그럼 concat으로 생성하고 뒤에 안쓰이는거 아닌가요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 시간이 너무 없어서, 3유형은 선택과 집중해서 보고 가려고 합니다. from statsmodel.formula.api import ols model = ols('키 ~ 몸무게' , data=df).fit() print(model.summary()) newdata = pd.DataFrame({'몸무게':[50]}) pred = model.get_prediction(newdata) pred.summary_frame(alpha=0.05) 이 부분 말고도 볼만한 부분이 따로 볼만한 부분이 있을까요..
print(train.shape, test.shape) train.head(1) test.head(1) train.info() test.info() train.isnull().sum() test.isnull().sum() train.describe() test.describe() target = train.pop('Segmentation') print(train.shape, test.shape) train = pd.get_dummies(train) test = pd.get_dummies(test) print(train.shape, test.shape) from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state=0) X_tr.shape, X_val.shape, y_tr.shape, y_val.shape from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(random_state=0) rf.fit(X_tr, y_tr) pred = rf.predict(X_val) 다음과 같이 작업형 2 기출 4회를 한 셀에 풀고 있는데 target 구문을 겟더미 실행하기 전에 타이핑했습니다. 이후 모델 학습 및 평가를 실행하려고 하니 다음과 같은 에러가 뜹니다. 에러 코드가 복사가 안됩니다. 이 점 양해바랍니다. ㅜㅜ