[플레이데이터 빅데이터 부트캠프]Python Pandas(3)

Drop

데이터프레임의 칼럼과 로우를 삭제하는데 사용되는 메소드이다.

df2 = df.copy()
df2.drop(['지역'], axis=1, inplace=True)

※ axis = 0일 때, 로우를 의미하고, axis = 1일 때, 칼럼을 의미한다.

Function Apply

맵 함수와 비슷한 방법론이다. 데이터프레임에 일관적으로 특정한 함수를 적용하고 싶을 때 사용한다.

import numpy as np
import pandas as pd

data = { 'Sex': ['Male', 'Female', 'Male'],
        'Age': [25, 28, 22],
        'Score': [95, 85, 75]}
df = pd.DataFrame(data)

def func(x):
    print('함수 호출됨')
    print(f'x: {x}')
    return
    
df.apply(func, axis=1)

함수 호출됨
x: Sex      Male
Age        25
Score      95
Name: 0, dtype: object
함수 호출됨
x: Sex      Female
Age          28
Score        85
Name: 1, dtype: object
함수 호출됨
x: Sex      Male
Age        22
Score      75
Name: 2, dtype: object

 혹은 특정 칼럼의 값에 1을 더해주는 역할도 할 수 있다.

이런식으로 특정 함수를 적용하여 데이터프레임을 편리하게 조작할 수 있다.

def add_one(x):
    return x+1
    
df11['테스트점수'] = df['테스트점수'].apply(add_one)

Regular Expression

df.isin() : 특정 칼럼 안에, 특정한 값이 있는지 찾아준다.(True False로 찾아준다.)

df[df['이름'].isin(['훈'])] 
#훈x 훈이o
# isin은 리스트를 파라메터로 갖습니다
# 리스트 내의 값들 중에 하나라도 존재하면 True, 그렇지 않은 False
df[df['Class'].isin(['A', 'B']) & df['Score'].isin([90])] # .isin() - String이 아닌 int float, bool 타입에도 적용이 된다

str.startwith() : 시작하는 문자열을 찾아주는 메소드이다.

df11[df11['Name'].str.startswith('짱')]

str.endswith() : 끝내는 문자열을 찾아주는 메소드이다.

df11[df11['Name'].str.endswith('구')]

str.contain() : 가지고 있는 문자열을 찾아주는 메소드이다.

df11[df11['Name'].str.contains('구')]

list(df.filter(regex=' ')) : 데이터프레임 안에 특정 문장이 있는 단어들을 리스트 형식으로 뽑아 쓸 수 있다.

list(crime_df11.filter(regex='짱'))

Combine Data Frame

pd.concat() : 배열과 배열을 합쳐주는 메소드이다.

df_vertical = pd.concat([df11, df11]) # axis의 default 값은 행

수직 방향으로 데이터들을 붙혀준다.

반대로 수평 방향으로 데이터들을 붙혀주려면, axis=1로 주면 된다.

df_horizontal = pd.concat([df11, df11], axis=1)

기타 데이터프레임 메소드

df.columns : df의 모든 열들을 보여준다.

df.columns
Index(['Name', 'Age', 'Score', 'School'], dtype='object')

df.index : df의 모든 행들을 보여준다.

df.index
Index(['row1', 'row2', 'row3', 'row4'], dtype='object')

df.unique() : df안의 nan을 포함하는 유일 값을 보여준다.

df['Age'].unique()
array([25., 28., 22., nan])

df.nunique() : df안의 유일 값의 개수를 보여준다.

df['Age'].nunique()
3

df['Age'].nunique(dropna=False)
4
#nan까지 포함혀려면 dropna파라미터를 사용한다.