Run The Bridge

Pandas 기초(7) 본문

Python/Pandas

Pandas 기초(7)

anfrhrl5555 2020. 9. 7. 15:19
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'5050]
], 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