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파라미터를 사용한다.