zenn.skin 무료버전 배포중!
자세히보기

pandas 15

Python/Syntax
[Pandas] 함수 정리

pandas 라이브러리에서 사용하는 함수 정리 1. 생성 import pandas as pd # Dict를 입력값으로 받는 경우 # Key는 column이 된다 df = pd.DataFrame({'a': [4, 5, 6, 7], 'b': [8, 9, 10, 11], 'c': [12, 13, 14, 15]}, index=[1, 2, 3, 4]) # List를 입력값으로 받는 경우 # 각 리스트는 row가 된다 df2 = pd.DataFrame( [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]], index=[1, 2, 3, 4], columns=list('abc')) 2. 이중 인덱스 데이터프레임 # index를 MultiIndex로 설정 #..

Python/Syntax
[Pandas] pivot

pandas.DataFrame.pivot을 사용하면 열값에 따른 pivot table을 생성할 수 있습니다. 행값과 열값이 동일한 데이터가 2개 이상 존재하면 ValueError가 발생하기 때문에 주의해야 합니다. 파라미터 설명 index pivot table의 index를 생성할 열 선택 default=None columns pivot table의 column을 생성할 열 선택 default=None values pivot table이 나타낼 값을 선택 별도로 지정을 하지 않는다면 남은 열들을 사용함 defalut=None import pandas as pd data = pd.read_csv('data.csv') data[:8].pivot('age', 'sex', 'height') pivot을 사용하면..

Python/Syntax
[Pandas] 빈도표 구하기, 카이제곱검정(crosstab, chi2_contingency)

1. pandas.crosstab crosstab은 범주형 변수를 기준으로 데이터의 개수를 파악할 때 사용합니다. crosstab을 사용해 빈도표를 만들어 카이제곱검정을 할 때도 유용합니다. 파라미터 설명 index: array-like, Series,list, arrays 행으로 지정할 데이터 columns: array-like, Series, list, arrays 열로 지정할 데이터 values: array-like, optional 집계할 데이터 (aggfunc을 같이 사용해야 합니다) aggfunc: function, optional 집계할 방법을 선택(count, mean, median ...) margins: bool, default=False 총계를 보고 싶은 경우 사용 dropna: bo..

Python/Syntax
[Pandas] DataFrame 조건부 검색 시 주의사항

DataFrame은 bool값을 이용한 boolean indexing을 사용할 수 있습니다. import pandas as pd df = pd.read_csv('./data.csv') df[df['country'].isin(['Australia', 'New Zealand')] 위와 같이 boolean indexing을 사용하면 원하는 조건의 값을 쉽게 찾을 수 있습니다. 파이썬에서 if문을 사용할 때처럼, | 또는 & 연산자를 사용하여 동시에 여러 개의 조건을 사용할 수도 있습니다. 이 때는 꼭 각 조건들을 '(', ')'을 사용하여 묶어주어야 합니다. df[df['country'].isin(['Australia', 'New Zealand']) & df['points'] >= 95] 괄호를 사용하지 않고..

Python/Syntax
[Pandas] 행에서 문자열, 값의 검색

DataFrame에서는 반복문 사용을 지양하고 대부분 내장함수를 사용하여 데이터를 처리합니다. 문자열을 검색할 때 "in"이나 re 모듈을 사용해서 검색을 많이 하는데 오늘은 contains에 대해 공부해보려 합니다. import pandas as pd data = [['Scarlett johansson', 160], ['Christopher Robert Evans', 183], ['Robert John Downey Jr.', 174], ['Mark Ruffalo', 173]] df = pd.DataFrame(data, columns=['name', 'height']) print(df['name'].str.contains('Jr')) 1. contains contains 메소드는 조건에 해당하는 bool..

Python/Syntax
[Pandas] 데이터 프레임 인덱스 초기화

DataFrame의 인덱스를 초기화할 때는 DataFrame.reset_index() 메소드를 사용합니다. 대부분의 메소드가 inplace를 지원하듯(DataFrame을 반환하지 않고 DataFrame의 값을 변경함) reset_index도 inplace를 지원합니다. import pandas as pd sales = pd.read_excel('매출내역.xlsx') cancel = sales.loc[sales['매출금액'] < 0] cancel.reset_index(inplace=True) cancel 별도의 설정없이 reset_index를 사용하는 경우 index가 따로 빠져나옵니다. drop=True로 설정하면 index를 별도의 열로 갖지 않고 삭제가 됩니다. import pandas as pd s..

Python/Syntax
[Pandas] 다른 데이터프레임 속성값을 이용해 값 선택, 데이터프레임 순회

두 개의 데이터프레임이 있을 때, 한 쪽 데이터프레임의 속성값을 사용해 다른 데이터 프레임에서 행을 선택하는 방법에 대해 적어보려 합니다. 다음과 같이 전체 매출 DataFrame과 반품-취소 DataFrame이 있습니다. 반품-취소 DataFrame을 사용해 전체 매출 데이터에서 해당하는 행을 얻으려 합니다. import pandas as pd selected_rows = [] for idx, item in cancel_list.iterrows(): selected_rows.append(sales.loc[(sales['판매일자'] == item['판매일자']) & (sales['매출금액'] == item['판매일자'])]) selected_rows DataFrame의 iterrows 메소드는 DataF..