일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 대구
- Linux
- 2021
- 달리기
- 뚝섬유원지
- 러닝
- 한강
- Shell
- GitHub
- zabbix
- 유산소
- 대전
- 자전거
- Run The Bridge
- DSEC
- Podman
- Python
- Grafana
- 오답노트
- Kubernetes
- 중식
- 정보처리기사
- 맛집
- 10km
- docker
- 성수대교
- 건대입구역
- 소모임
- 하체
- 힐링
Archives
- Today
- Total
Run The Bridge
Pandas 기초(7) 본문
728x90
1 2 3 4 5 6 7 | import pandas as pd friend_dict_list = [ {'name' : 'Jone', 'age' : 15, 'job' : 'student'}, {'name' : 'Jenny', 'age' : 30, 'job' : 'developer'}, {'name' : 'Nate', 'age' : 30, 'job' : 'teacher'}, ] df = pd.DataFrame(friend_dict_list, columns = ['name', 'age', 'job']) | cs |
DataFrame을 하나 생성한다.
해당 df에 salary라는 열을 추가하는 방법
1 | df['salary'] = 0 # salary라는 열 추가하기 | cs |
Result
salary 부분 추가 완료
여기서 salary는 급여인데 student는 급여가 없어서 No, 나머지는 Yes로 하고싶을 때
1 | import numpy as np df['salary'] = np.where(df['job'] != 'student', 'yes', 'no) | cs |
salary라는 Row에 Job이 student가 아니면 yes, 아니면 No라고 바꿔준다.
Result
DataFrame을 midterm, final로 바꿔준 뒤 생성한다.
1 2 3 4 5 6 | friend_dict_list = [ {'name' : 'Jone', 'midterm' : 95, 'final' : 85}, {'name' : 'Jenny', 'midterm' : 85, 'final' : 80}, {'name' : 'Nate', 'midterm' : 30, 'final' : 10}, ] df = pd.DataFrame(friend_dict_list, columns = ['name', 'midterm', 'final']) | cs |
total이라는 총점을 추가하고 싶을 때
1 | df['total'] = df['midterm'] + df['fianl'] | cs |
average라는 평균을 추가하고 싶을 때
1 | df['average'] = df['total'] / 2 # 평균구하기 | cs |
Result
여기서 Grade라는 Row를 추가하는데, average가 90이 넘으면 A, 80이 넘으면 B, 나머지는 F로 만들고싶을 때
1 2 3 4 5 6 7 8 9 | grades = [] for row in df['average']: if row >= 90: grades.append('A') elif row >= 80: grades.append('B') else: grades.append('F') df['grade'] = grades | cs |
Result
Grade라는 Row를 F만 아니면 Pass 그 외는 Fail로 바꾸고 싶을 때
1 2 3 4 5 | def pass_or_fail(row): if row != 'F': return "Pass" else return "Fail" | cs |
함수를 하나 선언해준 뒤,
1 | df.grade = df.grade.apply(pass_or_fail) | cs |
Result
다음과 같은 data_list를 하나 생성한다.
1 2 3 4 5 6 7 8 9 | date_list = [ { 'yyyy-mm-dd' : '2000-06-27' }, { 'yyyy-mm-dd' : '2007-10-27' } ] df = pd.DataFrame(date_list, columns = ['yyyy-mm-dd']) | cs |
여기서 year만 추출하고 싶을 때
1 2 | def extract_year(row): return row.split('-')[0] | cs |
함수를 선언한 뒤
1 | df['year'] = df['yyyy-mm-dd'].apply(extract_year) | cs |
마찬가지로 apply를 써준다.,
Result
두개의 DataFrame 합치는방법
1 2 3 4 5 6 | friend_dict_list = [ {'name' : 'Jone', 'midterm' : 95, 'final' : 85}, {'name' : 'Jenny', 'midterm' : 85, 'final' : 80}, {'name' : 'Nate', 'midterm' : 30, 'final' : 10}, ] df = pd.DataFrame(friend_dict_list, columns = ['name', 'midterm', 'final']) | cs |
1 2 3 | df2 = pd.DataFrame([ ['Ben', 50, 50] ], columns = ['name', 'midterm', 'final']) | cs |
index는 0번이 이미 존재하기 때문에 ignore를 써서 무시 시켜준다.
1 | df.append(df2, ignore_index = True) | cs |
Result
감사합니다.
Thank you!
728x90
'Python > Pandas' 카테고리의 다른 글
Pandas 기초(9) (0) | 2020.09.07 |
---|---|
Pandas 기초(8) (0) | 2020.09.07 |
Pandas 기초(6) (0) | 2020.09.03 |
Pandas 기초(5) (0) | 2020.09.03 |
Pandas 기초(4) (0) | 2020.08.31 |
Comments