목록10 minutes to pandas (9)
초보 개발자의 일기
예시용 df생성 df = pd.DataFrame(np.arange(16).reshape(4,4), index=None, columns=['price', 'qty', 'price', 'qty']) df 새 column 추가하기 마지막에 컬럼 추가 df['name'] = '-' # name 컬럼을 추가한다. df 원하는 위치에 컬럼 추가 예시용 df 생성 컬럼 추가 df.insert(2, 'name', '-', allow_duplicates=False) # 중복허용 안함 df 중복허용을 하지 않으면 같은 이름의 컬럼을 중복 생성할 수 없다. 기본 테이블을 멀티 column, index로 바꾸기 예시용 df생성 멀티 컬럼으로 만들기 import pandas as pd df2 = pd.DataFrame(df1...
변형 예시를 위한 튜플 생성 tuples = list(zip(*[['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'], ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']])) tuples [('bar', 'one'), ('bar', 'two'), ('baz', 'one'), ('baz', 'two'), ('foo', 'one'), ('foo', 'two'), ('qux', 'one'), ('qux', 'two')] Multi Index 생성 index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second']) index MultiIndex(levels=..
그룹화 groupby 예시를 위한 데이터프레임 생성 df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'], 'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'], 'C': np.random.randn(8), 'D': np.random.randn(8)} ) df 'A' 열을 기준으로 grouping.sum df.groupby('A').sum() 'A', 'B'열을 기준으로 grouping.sum df.groupby(['A', 'B']).sum() ※ 10 minutes to pandas를 바탕으로 한 학습 기록입니다 ※
병합 데이터프레임 간 결합이나 병합 형태의 연산을 말한다. Concat (데이터 합치기) 예시를 위해 데이터프레임을 생성한다. df = pd.DataFrame(np.random.randn(10, 4)) # 랜덤값으로 예시용 df 생성 df 데이터를 분할한다. pieces = [df[:3], df[3:7], df[7:]] pieces [ 0 1 2 3 0 -0.448821 -1.977129 1.611909 -2.037749 1 2.444068 -1.851920 1.410597 0.031063 2 0.090880 3.285175 -0.362880 -1.425051, 0 1 2 3 3 1.171016 -0.572153 -0.219454 -0.197718 4 0.075812 -0.574685 -0.397964 ..
연산 이진(Binary) 연산 Stats (통계 데이터) mean df1.mean(0) df1.mean()과 같다. (0은 열 기준, 1은 index 기준) : 평균값 A 0.135823 B 1.394061 C -0.523802 D -0.500769 F 2.750000 E 1.750000 E 1.750000 dtype: float64 shift # 예시용 Series 생성 s = pd.Series([1, 3, 5, np.nan, 6, 8]. index=dates) s 2013-01-01 1.0 2013-01-02 3.0 2013-01-03 5.0 2013-01-04 NaN 2013-01-05 6.0 2013-01-06 8.0 Freq: D, dtype: float64 shift로 값을 이동한다. s = ..
결측값 처리 결측값은 보통 np.nan으로 표시된다. 아래의 메소드는 대부분 원본을 변경하지 않는다. df1 = df.reindex(index=dates[0:4], columns=list(df.columns)+['E']) # 예시를 위한 df 변조 df1 데이터 삽입 df1.loc[dates[0]:dates[1], 'E'] = 1 df1 'E'열에 데이터를 삽입하여 NaN값을 줄인다. 행 삭제 df1.dropna(how='any') # df1.dropna(axis = 0)와 동일한 결과. 열 기준(axis = 1)도 가능 NaN값이 하나라도 있는 행들을 모두 삭제한다. df1.dropna(how='all')로 삭제하면 모두 NaN값인 행을 삭제한다. NaN값이 있는 자리에 Value 채우기 df1=df1..