Python/NumPy | Pandas 72

[Python] Pandas - Groupby 인덱스/컬럼

개요 2022.12.31 - [Python] Pandas - 피봇테이블과 그룹분석 2에서 그룹 분석을 위한 groupby와 그룹 연산에 대해 정리했다. 이 글에서는 그룹 분석 후 결과 데이터의 인덱스와 컬럼에 대해 적어둔다. 예시 데이터 예시로 사용할 데이터는 아래와 같다. import pandas as pd df = pd.DataFrame({ 'key1': ['A', 'A', 'B', 'B', 'A'], 'key2': ['one', 'two', 'one', 'two', 'one'], 'data1': [1, 2, 3, 4, 5], 'data2': [10, 20, 30, 40, 50] }) 그룹화 기준 컬럼 처리 groupby 함수로 전달한 그룹화 기준 컬럼은 그룹 연산한 결과의 index가 된다. 결과의..

[Python] Pandas - DataFrame 컬럼 이름 변경

개요 두 개의 DataFrame을 merge 한 결과 DataFrame에서 DataFrame 컬럼을 다르게 변경하려고 한다. 아래의 DataFrame을 예시로 방법을 적어둔다. df= pd.DataFrame({'col_str_1': ['1', '2', '3'], 'col_str_2': ['4', '5', '6'], 'col_str_3': ['7.0', '8.1', '9.2']}) df.rename df.rename 함수는 index 또는 column의 이름을 변경할 수 있다. index 또는 columns 매개변수에 변경 대상의 이름(AS_IS)과 변경할 이름(TO_BE)을 딕셔너리로 전달한다. df.rename(columns={as_is_name: to_be_name, as_is_name2: to_be..

[Python] Pandas - DataFrame 컬럼 형변환

개요 Pandas DataFrame의 데이터 타입을 변환할 때는 astype 함수를 사용한다. astype 함수는 DataFrame 컬럼의 데이터 타입 변경할 때에도 사용하는데 방법을 적어둔다. 단일 컬럼 형변환 다음과 같이 object 형으로 구성된 DataFrame이 있다고 하자. df= pd.DataFrame({'col_str_1': ['1', '2', '3'], 'col_str_2': ['4', '5', '6'], 'col_str_3': ['7.0', '8.1', '9.2']}) df.dtypes # 실행 결과 col_str_1 object col_str_2 object col_str_3 object dtype: object 데이터 중 col_str_1 컬럼을 int 형으로 변경해 본다. 변경할 ..

[Python] Pandas - DataFrame 랜덤 추출 (샘플링)

개요 2023.01.22 - [Python] 리스트 랜덤 추출 (샘플링)와 비슷하게 이 글에서는 DataFrame에서 데이터를 무작위로 추출하는 방법에 대해 알아본다. DataFrame.sample DataFrame에서 무작위로 몇 개의 값을 출력하는 함수이다. DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None, ignore_index=False) 매개변수는 다음과 같다. n : 추출할 개수. frac 매개변수와 동시에 사용할 수 없다. frac : 추출할 비율. 1 이하의 값을 설정하며 n과 동시에 사용할 수 없다. replace : 중복 샘플링 허용 여부. weight : 샘플링할 데..

[Python] Pandas - DataFrame 문자열 포함 여부 확인

개요 DataFrame에서 특정 문자열과 일치하거나 포함하는 데이터를 찾기 위한 방법을 정리한다. 예시 데이터는 다음과 같다. ## importing modules import numpy as np import pandas as pd ## creating a pandas DataFrame with strings, NaN, digit df = pd.DataFrame({ 'id': [1, 2, 3, 4, 5, 6, 7] , 'fruit': ['apple', 'PERSIMON', 'grapes', 'mango', 'peach and perl', np.NaN, '1004'] }) 문자열 일치 일치 여부는 비교 연산자 ==을 사용하여 확인할 수 있다. df['fruit'] == 'apple' # 실행 결과 0 T..

[Python] Pandas - 문자열 컬럼 분할 및 다중 컬럼 추가

개요 데이터를 전처리하다 보면 문자열 컬럼을 분할하여 컬럼을 여러 개 추가해야 하는 경우가 많다. 이 글에서는 아래 데이터를 이용해 주소 컬럼을 분할해 도시와 구로 추가하는 방법을 몇 가지 정리한다. df = pd.DataFrame( {"이름":["A", "B", "C", "D"], "나이":["10", "15", "42", "22"], "주소":["서울;강동구", "인천;연수구", "안양;동안구", "부산;수영구"]} ) 반복문 DataFrame 인덱서를 이용해 반복적으로 셀에 접근하여 데이터를 처리하는 방식이다. for i in df.index: df[['도시', '구']] = df.loc[i, '주소'].split(';') 데이터양이 적을 때는 사용해도 괜찮지만, 반복문으로 처리하기 때문에 데이터양..

[Python] Pandas - DataFrame 문자열 변환

개요 DataFrame 내용을 Slack이나 MS Teams Webhook으로 알람을 보내는 등의 이유로 DataFrame을 문자열로 변환하고자 한다. to_string DataFrame을 콘솔 친화적인 형식으로 렌더링 한다. 예로 들어 titanic 데이터세트를 출력하면 아래와 같다. import numpy as np import pandas as pd import seaborn as sns titanic = sns.load_dataset("titanic") titanic to_string 함수를 사용해서 문자열로 렌더링 하면 다음과 같다. 주피터 노트북에서는 문자열로 렌더링 한 DataFrame은 print 함수로 출력하는 게 보기 편하다. print(titanic.to_string()) 인덱스 빼고..

[Python] Pandas - 반복문으로 DataFrame 합치기

개요 이 글에서는 같은 구조의 DataFrame을 반복적으로 만든 뒤, 하나의 DataFrame으로 합치는 방법에 대해 정리한다. DataFrame을 합치는 방법으로는 concat, merge, append, join 등의 함수가 존재한다. 다만 기준 열을 이용해 합치는 것이 아니라 단순히 세로로 데이터 연결을 하고자 하므로 이 글에서는 concat과 append를 살펴볼 것이다. 아래 데이터를 예시로 정리한다. import numpy as np import pandas as pd import seaborn as sns titanic = sns.load_dataset("titanic") append 행 끝에 다른 행을 추가한 새 DataFrame을 반환한다. 추가할 DataFrame의 인덱스를 무시할 때..

[Python] Pandas - DataFrame NaN 포함 행 제거

개요 DataFrame을 저장할 때 NaN을 포함한 행은 제외하고 저장하고자 한다. 아래 데이터를 예로 들어 방법을 정리한다. import numpy as np import pandas as pd import seaborn as sns planets = sns.load_dataset('planets') planets 데이터 확인 df.info 함수를 이용해 DataFrame에 저장된 데이터의 정보를 간단히 살펴본다. info 함수를 이용하면 객체의 타입, 인덱스 길이와 범위, column의 이름과 데이터 타입, 그리고 결측값이 아닌 데이터의 개수 등의 정보를 확인할 수 있다. planets.info() # 실행 결과 RangeIndex: 1035 entries, 0 to 1034 Data columns ..

[Python] Pandas - DataFrame 컬럼 순서 변경

개요 DataFrame으로 데이터를 추가하다 출력할 때가 되면 데이터를 추가한 순서가 보기 편한 순서와 달라 데이터가 눈에 잘 안 들어오는 경우가 있다. 아래의 데이터를 예시로 들어 DataFrame의 컬럼 순서를 변경하는 방법을 정리해둔다. import seaborn as sns titanic = sns.load_dataset("titanic") titanic 컬럼 나열 원하는 순서로 컬럼을 다시 나열하여 인덱싱 한다. df.columns 속성을 이용하면 필요한 컬럼을 빠트리지 않을 수 있다. titanic.columns # 실행 결과 Index(['survived', 'pclass', 'sex', 'age', 'sibsp', 'parch', 'fare', 'embarked', 'class', 'who..

1 2 3 4 5 6 7 8