일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 안지워지는이유
- 새싹LLM강의
- GridSerarchCV
- 도봉1기llm
- 개발자도구로 영상자막 다운받는법
- 딥시크
- 노션 countif
- Zoom 영상 자막 다운
- 유튜브자막다운로드
- (도봉 SW 1기) LLM 활용 인공지능 서비스 개발자 양성과정
- randomstate
- JAVA EE Integration
- 유튜브자막 추출
- deepseek
- 유튜브자막 추출하는법
- 나타나지 않을 때
- One-Hot encoding
- ChatGPT
- Zoom자막
- SeSAC
- Zoom 자막 추출
- Raytune
- 도봉1기
- 테스트데이터
- 영상 자막 추출
- LLM
- 하이퍼파라미터최적화
- RandomSearchCV
- Optuna
- hyperparameter-optimization
- Today
- Total
잇연
[sesac LLM] day30-240214 과제 본문
과제에 대해서 중요한 내용들 공부
import pandas as pd
import seaborn as sns
df = sns.load_dataset("titanic")
df.head()
타이타닉 데이터셋을 불러온다.
문제 1. 행과 열의 갯수를 출력한다.
-> 행과열은 shape으로 나타낼 수 있다. df.shape 해주면 행과 열의 개수가 나온다.
문제2. 결측치 수 세기
->결측치는 isnull로 확인할 수 있는데, df.isnull()을 해주면 null값인지 아닌지 True, False의 결과가 나온다.
-> 따라서 df.isnull().sum()을 해줘야 결측치 개수가 나온다.
문제3. alive 의 컬럼의 값을 그룹화해서 세어준다.
-> groupby().size를 통해 그룹화하거나 value_count를 활용한다.
df['alive'].value_counts()
df.groupby('alive').size()
- df.groupby('alive').size():
- 'alive' 열의 고유값별로 그룹화하고, 각 그룹의 크기를 Series 객체로 반환
- groupby 메서드는 데이터를 그룹화하는 데 사용되며, size 메서드는 각 그룹의 크기를 계산한다.
- 이 방법은 다른 그룹 연산(합계, 평균 등)을 수행하기 위한 기초 작업으로 자주 사용된다.
- df['alive'].value_counts():
- 'alive' 열의 고유값을 카운트하고, 빈도수가 높은 순서대로 정렬된 Series 객체를 반환한다.
- value_counts 메서드는 간편하게 특정 열의 고유값별 빈도수를 계산하고 정렬한다.
- 기본적으로 내림차순으로 정렬되므로, 가장 흔한 값부터 시작하는 Series를 얻을 수 있다.
차이점:
- size는 그룹화 후 모든 그룹의 크기를 계산하는 데 사용될 수 있으며, 추가적인 그룹 연산을 위한 체이닝에 유용
- value_counts는 한 열의 값의 빈도수를 빠르게 계산하고, 결과를 내림차순으로 정렬한다.
결과적으로 두 메서드는 사용 목적이 비슷하지만, value_counts가 좀 더 간단하고 직관적인 경우가 많다. 그러나 특정 그룹화 조건 하에서 더 복잡한 분석을 수행하고자 할 때는 groupby를 사용하는 것이 더 유리할 수 있다.
4. age의 요약값을 구하기
#기술통계값구하기
df['age'].describe()
count 714.000000
mean 29.699118
std 14.526497
min 0.420000
25% 20.125000
50% 28.000000
75% 38.000000
max 80.000000
Name: age, dtype: float64
수치형의 기술통계는 위와 같이 확인할 수 있다.
5. object 타입의 요약값을 구하기
df.describe(include='object')
sex embarked who embark_town alive
count 891 889 891 889 891
unique 2 3 3 3 2
top male S man Southampton no
freq 577 644 537 644 549
include를 사용해서 object 타입인 컬럼들의 기술통계를 확인할 수 있다.
6. embark_town 컬럼의 값을 소문자로 변경 후에 "embark_lower" 라는 새로운 컬럼에 담기
-> embark_town 컬럼의 값을 소문자로 변경하는 방법 :
str.lower()로 소문자로 바꾸어줄 수있다.
df['embark_lower'] = df['embark_town'].str.lower()
print(df['embark_lower'].head(5))
7. embark_lower 컬럼에서 south 가 들어가는 데이터의 수를 세어보기
-> 특정 문자열이 들어가는 데이터를 찾는 function은? contains이다.
컬럼.str.contains('south') 을 sum() 해주면 된다.
south_count = df['embark_lower'].str.contains('south').sum()
print(south_count)
8. age 컬럼의 값이 15 보다 작거나 같은 값을 구한다.
True, False로 표시되는 값을 child 라는 새로운 컬럼에 담아주세요.
조건은 df['age']<=15
이걸 그대로 df['child']에 할당하면 된다.
뭔가 코딩으로나 sql로 하면 더 길어질 것 같은데, 간단하게 할 수 있는게 좋은 점 같다.
df['child'] = df['age'] <= 15
파이썬이었다면?
child = []
for age in ages:
child.append(age <= 15)
#혹은
child = [age <= 15 for age in ages]
sql이었다면?
SELECT *,
CASE
WHEN age <= 15 THEN TRUE
ELSE FALSE
END as child
FROM table_name;
12. pclass 가 3이고 embarked 가 Q인 fare 의 평균을 구하라.
df[(df['pclass']==3) & (df['embarked']=='Q')]['fare'].mean()
15. age 의 결측치를 0 으로 채워서 age_fill 이라는 컬럼에 담고 age_fill 컬럼의 평균값을 출력하기
fillna를 사용한다.
df['age'].fillna(0).mean()
16. deck 컬럼을 그룹화 해서 갯수를 카운트하고 A~G 순으로 정렬이 되도록 하기
value_counts()와
sort_index()를 사용한다.
deck_group = df['deck'].value_counts().sort_index()
print(deck_group)
18. embarked 가 C 이거나 deck 이 F인 데이터에서 age 컬럼의 중앙값을 구하기
조건은 (df['컬럼'] ==' ') 으로 작성하고
or 은 | 를 사용한다.
그리고 중앙값을 구하는 건 median을 활용해주면된다.
df[(df['embarked']=='C')|(df['deck']=='F')]['age'].median()
작성시 괄호 주의 조건마다() 를 붙여야 함 안쓰면 에러가난다.
20. age 를 역순으로 정렬하고 상위 5개만 출력하기
df['age'].sort_values(ascending=False).head(5)
ascending은 올림차순이고 ascending=False를 통해서 내림차순으로 정렬이 가능하다.
descending=True는 시도해봤는데 되지 않는다...
'SESAC LLM 개발자 강의 > ML 머신러닝' 카테고리의 다른 글
[sesac LLM] day32-240216 ML 하이퍼파라미터 조정 방법, Encoding (0) | 2024.02.16 |
---|---|
[sesac LLM] day31-240215 기계학습(Machine Learning) 기초개념, 의사결정모델 (0) | 2024.02.15 |
[sesac LLM] day28-240208 판다스 활용 방법: 타입 변환부터 데이터 전처리까지 (0) | 2024.02.08 |