작업형1 모의문제 4번에 3)문제 질문
안녕하세요 강사님
정답이
views_min=df.iloc[:10]['views'].min
df.iloc[:10, -1]=views_min
인데,
df=df.iloc[0:10]
df['views']=df['views'].min()
이렇게 쓰면 안될까요??
답변 2
0
df=df.iloc[0:10]
이 코드에서 만약 100개의 데이터가 있었다면 10개로 슬라이싱이 되버렸습니다.
그럼 10개의 데이터만 df에 남아 있는데
특정 컬럼 합계를 묻게 되면 나머지 90개는 알 수가 없습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 연정님.
질문하신 코드들은 pandas 라이브러리에서 데이터프레임을 사용하는 방법에 대한 것으로, 두 코드의 차이는 데이터 처리의 방식에 있습니다. 코드를 살펴보면:
정답 코드:
views_min = df.iloc[:10]['views'].min() df.iloc[:10, -1] = views_min- 위 코드는 데이터프레임에서 첫 10개의 행의 ‘views’ 열에 대해 최소 값을 찾은 후, 이 값을 첫 10개의 행의 마지막 열에 할당하는 방식입니다.
- 위 코드는 데이터프레임에서 첫 10개의 행의 ‘views’ 열에 대해 최소 값을 찾은 후, 이 값을 첫 10개의 행의 마지막 열에 할당하는 방식입니다.
제안한 코드:
df = df.iloc[0:10] df['views'] = df['views'].min()- 이 코드는 데이터프레임을 처음 10개의 행으로 슬라이싱하고, ‘views’ 열 전체에 대해 그 최소 값을 할당합니다.
- 이 코드는 데이터프레임을 처음 10개의 행으로 슬라이싱하고, ‘views’ 열 전체에 대해 그 최소 값을 할당합니다.
두 코드의 차이점
- 정답 코드는 기존 df의 첫 10개 행에 대해 특정 열의 값을 변경할 뿐, 전체 df의 구조를 변경하지 않습니다.
- 제안한 코드는 df를 초기 슬라이싱한 10개의 행으로 제한합니다. 또한, ‘views’의 모든 값을 최소값으로 일괄 대체하며, 원본 데이터프레임의 구조를 손상시킬 수 있습니다.
둘 다 결과적으로 ‘views’ 열의 값이 최소값으로 지정되지만, 데이터프레임 전체에 걸친 연산의 영향과 후속 처리에 필요한 원본 데이터프레임의 보존 여부를 기준으로 선택할 수 있습니다. 따라서, 본래의 문제 또는 후속 처리와 연계된 특정 요구 사항에 부합하는 코드를 선택하는 것이 중요합니다.
보다 구체적인 설명은 유사한 질문에서 참고할 수 있습니다. 이 유사한 질문은 pandas의 인덱싱 및 슬라이싱 방식에 대한 더 많은 인사이트를 제공합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
수강 연장 가능 여부 문의
0
22
1
강의 구매했는데 교재 필수일까요
0
22
2
수강기간 연장 가부 문의드립니다.
0
21
2
수강기간 연장이 가능한지 양해를 구하며 문의를 드립니다.
0
27
2
작업형2 모의문제2에서 drop이랑 인코딩
0
27
2
인코딩을 다 꼭 해봐야하는지
0
36
2
안녕하세요? 강사님 질문있습니다.(인코딩관련)
0
57
2
이진분류에서 양성 클래스가 0일 때 평가 방법
0
46
2
원핫인코딩 전 train과 test 병합여부
0
50
2
수강기간 연장
0
69
2
29강 작업2형의 이상치 처리
0
65
2
수강기간 연장 문의드립니다!
0
65
2
9월에 실기출제기준 개정내역에 신설된부분
0
55
1
작업형2 모의문제2 결과값 관련 문의드립니다.
0
66
2
12회차 시험 실패 후 13회 도전 예정입니다.
0
55
1
random_state 값
0
73
2
강의 연장 문의 드립니다.
0
66
2
강의 연장 문의
0
61
2
오징어게임
0
70
1
object 컬럼이 여러 개인 경우 인코딩 전처리 방법
1
49
2
데이터 전처리 순서 관련
0
64
2
작업형2 모의문제 데이터 불러오기
0
62
2
강의 연장 부탁드립니다!
0
67
2
수강기간 연장 문의드립니다!
0
66
2





