문자 전처리
문자열 필터링
문자열이 포함되는지 확인하고 싶을 때
df['컬럼명'].str.contains("문자열")
해당 문자열로 시작하는 것만 필터링 하고 싶을 때
df['컬럼명'].str.startswith("문자열")
문자열 분리
#기존 문자열을 분리할 기준 문자열로 나눠서 새로운 컬럼으로 만들기
df['새로운 컬럼'] = df['컬럼명'].str.split("분리할 기준 문자열").str[0]
#기존 문자열을 분리할 기준 문자열로 나눠서 데이터프레임 형태로 저장
split_df = df['컬럼명'].str.split("분리할 기준 문자열", expand=True)
#새로운 컬럼으로 만들기
df['새로운 컬럼'] = split_df[0]
df[['컬럼1','컬럼2']]=day_split = df["기존 컬럼"].str.split("분리할 기준 문자열",expand=True)
split()의 파라미터
n=1 한 번만 분리한다(n=2 두 번만 분리)
expand=True 리스트가 아닌 데이터프레임 형태로 저장
pandas | str.split()을 사용하여 하나의 컬럼을 여러개로 나누기
다음과 같은 데이터프레임에 engine, mileage, max_power 등 각 값에 숫자와 문자가 함께 있는 컬럼들이 있다. 이런 컬럼들에서 숫자와 문자를 분리하기 위해 str.split() 함수를 사용할 수 있으며, 실행 결
dduniverse.tistory.com
문자열 슬라이싱
df['컬럼명'].str[:]
https://hleecaster.com/pandas-data-cleaning-2/
Loading...
hleecaster.com
문자열 -> 정수형
astype(int)
정수형 -> 문자열
astype(str)
https://jimmy-ai.tistory.com/34
[Pandas] 파이썬 판다스 데이터프레임 정수형(int), 문자열(str) 타입 변환(astype)
판다스 문자열(str), 정수형(int) 타입 변환하기 : astype 함수 이번 포스팅에서는 astype 함수를 통하여 판다스 데이터프레임 column의 자료형을 변환시키는 방법에 대해서 알아보도록 하겠습니다. 일
jimmy-ai.tistory.com
df.groupby('컬럼값')
df.groupby(['컬럼값1', '컬럼값2'])
groupby로 시각화도 가능
df.groupby('컬럼값').plot()
df.groupby('컬럼값')['컬럼값'].집계함수()
파이썬 마스터하기 : Group By 함수
판다스(Pandas)에서 Group By는 데이터를 그룹화하고 그룹화된 데이터에 대한 연산을 수행하는데 매우 유용한 기능입니다. 이번 포스트에서는 Python에서 Group By의 개념과 활용 예제에 대해 다루어보
velog.io
df.groupby("컬럼").sum(numeric_only=True)
numeric_only=True로 숫자형 값들만 계산될 수 있도록
df.groupby 여러개 후 ->인덱스 여러 개
df.unstack() ->인덱스가 한 개
reset_index()
df1 = df.reset_index()
데이터프레임의 인덱스 값을 컬럼으로 빼는 것이다. 인덱스는 정수형 인덱스가 된다.
groupby, reset_index 함께 사용
new_df = df.groupby(['컬럼명1', .. , '컬럼명n']).집계함수().reset_index()
map, apply
한 번에 적용할 때
딕셔너리로 만들고, map으로 적용할 수도 있음
데이터 프레임에 함수 적용: map, apply, applymap 완벽 정리
안녕하세요. 모두의 케빈입니다. 오늘은 map, apply, applymap의 정의와 각각의 차이점을 완벽하게 예제를 활용하여 설명해드리도록 하겠습니다. ■ 메서드 설명 [요약] map, apply 메서드의 차이는 거의
kevinitcoding.tistory.com
데이터 합치기
데이터 합치는 방법 4가지
1. inner join
2. left join
3. right join
4. full outer join
pd.merge()
pd.merge(df1, df2, on='공통된 컬럼명')
how='left', 'right', 'outer'이 있고
없으면 inner join이 된다
컬럼 여러개를 원할 시
pd.merge(df1, df2, on=['공통된 컬럼명1', .. ,'공통된 컬럼명n'])
concat
1. 좌우로 붙이기(axis = 1)
2. 상하로 붙이기(axis = 0)
pd.concat([df1, df2], axis=)
https://yganalyst.github.io/data_handling/Pd_12/
[Pandas 기초] 데이터프레임 합치기(merge, join, concat)
판다스 데이터프레임을 병합하는 여러가지 함수에 대해 알아보자
yganalyst.github.io
axis = 0 -> 인덱스
axis = 1 -> 컬럼
[파이썬 pandas] 판다스 매개변수 axis의 의미를 알아보자
판다스를 사용하다 보면 평균 계산, 데이터프레임 열이나 행 삭제 작업등을 할 때 axis(축)을 지정해야 합니다. 축을 넣어야 할 때면 0을 넣어야 하는지 1을 넣어야 하는지 헷갈릴 수 있습니다. 이
hogni.tistory.com
집계함수 axis
axis = 0 -> 각 컬럼 '행'들을 집계
axis = 1 -> 각 행의 '열'들을 집계
axis='columns'
axis='index'
df.sum(axis='columns') -> 각 컬럼끼리의 합을 구한다(한 행을 더한다)
df.sum(axis='index') -> 각 인덱스끼리의 합을 구한다(한 열을 더한다)
unique() 와 nunique()
unique() 컬럼 중 중복되지 않는 유일한 값 종류
nunique() 유일한 값 종류의 개수
결측치 행 확인 방법
df[df['컬럼명'].isnull()]
https://jimmy-ai.tistory.com/162
[Pandas] 파이썬 결측치 확인 방법 : isnull, notnull
판다스 데이터프레임 NaN 값 위치, 개수 확인 안녕하세요. 이번 시간에는 파이썬 판다스 라이브러리에서 데이터프레임 내의 결측값 행을 확인하고, 각 열 별로 결측치의 개수를 세는 방법을 isnull
jimmy-ai.tistory.com
범주화
연속형 변수 범주형 변수로 변환
1. 조건문 사용
2. pd.cut() 사용
3. pd.qcut() 사용
조건문 사용
df['new_col'] = 0
#condition은 조건
df.loc[condition1, 'new_col'] = 값1
df.loc[condition2, 'new_col'] = 값2
pd.cut() 사용
df['new_col'] = pd.cut(x=데이터,
bins = 경계값 리스트,
labels = 각 구간의 이름 지정 리스트,
include_lowest = True #낮은 경계값 포함
)
df['new_col'] = pd.cut(x=df['범주화가 필요한 컬럼'],
bins = [0, 20, 40, 60, 80, 100], #오름차순으로
labels = ['F', 'D', 'C', 'B', 'A'],
#0~20은 F, 20~40은 D, 40~60은 C, 60~80은 B, 80~100은 A
include_lowest = True #왼쪽 경계 숫자까지 포함 0 <= F < 20
)
df.qcut() 사용
범주 개수 정함
df['new_col'] = pd.qcut(x=df['범주화가 필요한 컬럼'], q=n, labels=[])
한 범주 당 n개씩 배부
중복되는 컬럼 제거
df.drop_duplicates (subset=['원하는 컬럼'])