카테고리 없음

데이터 프레임

왕초보코딩러 2025. 9. 16. 16:10
728x90

문자 전처리

 

문자열 필터링

문자열이 포함되는지 확인하고 싶을 때

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 리스트가 아닌 데이터프레임 형태로 저장

 

https://dduniverse.tistory.com/entry/pandas-strsplit%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%ED%95%98%EB%82%98%EC%9D%98-%EC%BB%AC%EB%9F%BC%EC%9D%84-%EC%97%AC%EB%9F%AC%EA%B0%9C%EB%A1%9C-%EB%82%98%EB%88%84%EA%B8%B0

 

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('컬럼값')['컬럼값'].집계함수()

https://velog.io/@euisuk-chung/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A7%88%EC%8A%A4%ED%84%B0%ED%95%98%EA%B8%B0-GROUP-BY

 

파이썬 마스터하기 : 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으로 적용할 수도 있음

 

https://kevinitcoding.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%94%84%EB%A0%88%EC%9E%84%EC%97%90-%ED%95%A8%EC%88%98-%EC%A0%81%EC%9A%A9-map-apply-applymap-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC#google_vignette

 

데이터 프레임에 함수 적용: 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 -> 컬럼

https://hogni.tistory.com/49

 

[파이썬 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=['원하는 컬럼'])