"Pandas:DataFrame:구조 파악"의 두 판 사이의 차이
(새 문서: {| class="wikitable" !의도 !방법 |- |df의 전체적인 데이터를 파악한다. |객체명.describe() 해당 칼럼의 갯수, 평균, std(standard deviation), 분표별 값...) |
잔글 (Sam님이 Pandas:DataFrame:구조파악 문서를 Pandas:DataFrame:구조 파악 문서로 이동했습니다) |
||
(사용자 2명의 중간 판 9개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
+ | == 전체 구조 파악 == | ||
{| class="wikitable" | {| class="wikitable" | ||
!의도 | !의도 | ||
+ | !설명 | ||
!방법 | !방법 | ||
|- | |- | ||
− | |df의 전체적인 데이터를 | + | |df의 전체적인 데이터를 파악 |
− | | | + | |요약통계. |
− | 해당 칼럼의 갯수, 평균, std(standard deviation), | + | 해당 칼럼의 갯수, 평균, std(standard deviation), 사분위수, 최댓값, 최솟값을 알 수 있다. |
+ | |||
+ | 문자에 대한 통계는 나오지 않는데, 옵션에 include='all'을 넣으면 문자에 대한 통계도 볼 수 있다. | ||
+ | |df.describe() | ||
+ | |- | ||
+ | |df의 변수(열)속성을 파악 | ||
+ | |각 열의 데이터타입과 속한 데이터 갯수, df가 차지하는 메모리를 보여준다. | ||
+ | |df.info() | ||
+ | |- | ||
+ | |df 대략적인 구조 파악 | ||
+ | |df의 행과 열 갯수를 반환한다. | ||
+ | 함수가 아니라 속성. | ||
+ | |df.shape | ||
+ | {| class="wikitable" | ||
+ | !의도 | ||
+ | !설명 | ||
+ | |- | ||
+ | |행 갯수 파악 | ||
+ | |df.shape[0] | ||
+ | |- | ||
+ | |열 갯수 파악 | ||
+ | |df.shape[1] | ||
+ | |} | ||
+ | |- | ||
+ | |행 갯수 | ||
+ | | | ||
+ | |len(df) | ||
+ | |- | ||
+ | |칼럼목록 | ||
+ | |칼럼목록을 얻는다. | ||
+ | |데이터프레임.columns | ||
+ | |- | ||
+ | |행목록 | ||
+ | |인덱스 목록을 얻는다. | ||
+ | |데이터프레임.index | ||
+ | |} | ||
+ | |||
+ | === dataframe 전체를 보고 싶을 때 === | ||
+ | {| class="wikitable" | ||
+ | !의도 | ||
+ | !방법 | ||
+ | |- | ||
+ | |df가 커지면 중간이 잘리는데, 다음의 옵션으로 전체를 볼 수 있다. | ||
+ | |pd.set_option('display.max_columns', None) # 모든 열 보기 | ||
+ | pd.set_option('display.max_rows', None) # 모든 행 보기 | ||
+ | |||
+ | |||
+ | pd.set_option('display.max_columns') # 열 관련 설정 되돌리기. | ||
+ | |||
+ | pd.set_option('display.max_rows') # 행 관련 설정 되돌리기. | ||
+ | |||
+ | pd.set_option('all') # 모든 설정 되돌리기. | ||
+ | |} | ||
+ | |||
+ | == 데이터 일부 가져오기 == | ||
+ | {| class="wikitable" | ||
+ | !의도 | ||
+ | !방법 | ||
|- | |- | ||
|처음 n개만 가져온다. | |처음 n개만 가져온다. | ||
13번째 줄: | 72번째 줄: | ||
|나중 n개만 가져온다. | |나중 n개만 가져온다. | ||
|df. | |df. | ||
+ | |} | ||
+ | |||
+ | = 열 조작 = | ||
+ | |||
+ | == 열 이름 바꾸기 == | ||
+ | 다른 매체에 저장했다가 다시 복구할 때 열 이름, 인덱스 따위가 제대로 지정되지 않는 경우가 있다.<syntaxhighlight lang="python"> | ||
+ | df.rename(columns={0:'time', 1:'start', 2:'close', 3:'high', 4:'low', 5:'volume'}, inplace=True) | ||
+ | </syntaxhighlight>inplace=True는 해당 df에 적용하겠다는 의미. 일반적으로 원본 데이터 손실을 막기 위해 df_copy = rename(.... inplace=False) 형태로 사용한다. | ||
+ | |||
+ | 일반적으로 기본 설정은 False. | ||
+ | |||
+ | 다음과 같은 형태로 사용도 가능하다.<syntaxhighlight lang="python"> | ||
+ | df = df.rename(columns={0:'time', 1:'start', 2:'close', 3:'high', 4:'low', 5:'volume'}) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == 열 추가하기 == | ||
+ | 특정 행에 대하여, 특정 열 값을 모아 연산한 후 새로운 행을 생성해 넣는다.<syntaxhighlight lang="python"> | ||
+ | df['mean'] = df[['start', 'high', 'low', 'close']].mean(axis=1) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == 열 순서 바꾸기 == | ||
+ | <syntaxhighlight lang="python"> | ||
+ | df = df[['열1', '열3', '열4', '열2']] # 열1,2,3,4 순인 df의 열을 1342 순으로 바꿀 수 있다. | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === 특정 열만 남기기 === | ||
+ | <syntaxhighlight lang="python"> | ||
+ | df = df[['열1', '열3']] # 남기고 싶은 열만 쓰면 남는다. | ||
+ | </syntaxhighlight> | ||
+ | ==인덱스 조작== | ||
+ | {| class="wikitable" | ||
+ | !의도 | ||
+ | !방법 | ||
+ | !설명 | ||
+ | |- | ||
+ | |인덱스 설정 | ||
+ | |df.set_index('열', inplace=True) | ||
+ | |해당 열을 인덱스로 만든다. | ||
+ | |- | ||
+ | |인덱스를 데이터화 | ||
+ | |df = df.reset_index | ||
+ | |숫자 인덱스가 아닌 경우 사용. 인덱스 목록을 뽑아낼 때의 사전작업. | ||
+ | (엑셀에서 불러왔을 때 필요하다.) | ||
+ | |- | ||
+ | |인덱스리스트 얻기 | ||
+ | |list(데이터프레임['''<nowiki/>'인덱스열이름''''])'''<nowiki/><nowiki/><nowiki/>''' | ||
+ | 데이터프레임.index | ||
+ | |위에서 얻은 인덱스 열이름을 기입해 넣거나('''<nowiki/>'Unnamed: 0'),<nowiki/><nowiki/><nowiki/>''' | ||
+ | 바로 인덱스를 불러오기.(둘 다 시도해 볼 것.) | ||
+ | |- | ||
+ | |인덱스 이름 바꾸기 | ||
+ | |데이터프레임.rename(index={'기존이름':'신이름'}) | ||
+ | | | ||
+ | |- | ||
+ | |데이터 크기 살피기 | ||
+ | |len(df.index) | ||
+ | | | ||
+ | |- | ||
+ | |인덱스 이어붙이기(행 합치기) | ||
+ | |df = pd.concat([df1, df2, df3,...]) | ||
+ | |이렇게 쓰면 인덱스들을 이어붙인다. | ||
+ | |- | ||
+ | |뒤의 i개만 남기기 | ||
+ | |df = df.tail(i) | ||
+ | | | ||
|} | |} | ||
[[분류:Pandas:DataFrame]] | [[분류:Pandas:DataFrame]] |
2023년 2월 1일 (수) 12:07 기준 최신판
1 전체 구조 파악편집
의도 | 설명 | 방법 | ||||||
---|---|---|---|---|---|---|---|---|
df의 전체적인 데이터를 파악 | 요약통계.
해당 칼럼의 갯수, 평균, std(standard deviation), 사분위수, 최댓값, 최솟값을 알 수 있다. 문자에 대한 통계는 나오지 않는데, 옵션에 include='all'을 넣으면 문자에 대한 통계도 볼 수 있다. |
df.describe() | ||||||
df의 변수(열)속성을 파악 | 각 열의 데이터타입과 속한 데이터 갯수, df가 차지하는 메모리를 보여준다. | df.info() | ||||||
df 대략적인 구조 파악 | df의 행과 열 갯수를 반환한다.
함수가 아니라 속성. |
df.shape
| ||||||
행 갯수 | len(df) | |||||||
칼럼목록 | 칼럼목록을 얻는다. | 데이터프레임.columns | ||||||
행목록 | 인덱스 목록을 얻는다. | 데이터프레임.index |
1.1 dataframe 전체를 보고 싶을 때편집
의도 | 방법 |
---|---|
df가 커지면 중간이 잘리는데, 다음의 옵션으로 전체를 볼 수 있다. | pd.set_option('display.max_columns', None) # 모든 열 보기
pd.set_option('display.max_rows', None) # 모든 행 보기
pd.set_option('display.max_rows') # 행 관련 설정 되돌리기. pd.set_option('all') # 모든 설정 되돌리기. |
2 데이터 일부 가져오기편집
의도 | 방법 |
---|---|
처음 n개만 가져온다. | df.head(n)
n의 기본값은 5. |
나중 n개만 가져온다. | df. |
3 열 조작편집
3.1 열 이름 바꾸기편집
다른 매체에 저장했다가 다시 복구할 때 열 이름, 인덱스 따위가 제대로 지정되지 않는 경우가 있다.
df.rename(columns={0:'time', 1:'start', 2:'close', 3:'high', 4:'low', 5:'volume'}, inplace=True)
inplace=True는 해당 df에 적용하겠다는 의미. 일반적으로 원본 데이터 손실을 막기 위해 df_copy = rename(.... inplace=False) 형태로 사용한다.
일반적으로 기본 설정은 False.
다음과 같은 형태로 사용도 가능하다.
df = df.rename(columns={0:'time', 1:'start', 2:'close', 3:'high', 4:'low', 5:'volume'})
3.2 열 추가하기편집
특정 행에 대하여, 특정 열 값을 모아 연산한 후 새로운 행을 생성해 넣는다.
df['mean'] = df[['start', 'high', 'low', 'close']].mean(axis=1)
3.3 열 순서 바꾸기편집
df = df[['열1', '열3', '열4', '열2']] # 열1,2,3,4 순인 df의 열을 1342 순으로 바꿀 수 있다.
3.3.1 특정 열만 남기기편집
df = df[['열1', '열3']] # 남기고 싶은 열만 쓰면 남는다.
3.4 인덱스 조작편집
의도 | 방법 | 설명 |
---|---|---|
인덱스 설정 | df.set_index('열', inplace=True) | 해당 열을 인덱스로 만든다. |
인덱스를 데이터화 | df = df.reset_index | 숫자 인덱스가 아닌 경우 사용. 인덱스 목록을 뽑아낼 때의 사전작업.
(엑셀에서 불러왔을 때 필요하다.) |
인덱스리스트 얻기 | list(데이터프레임['인덱스열이름'])
데이터프레임.index |
위에서 얻은 인덱스 열이름을 기입해 넣거나('Unnamed: 0'),
바로 인덱스를 불러오기.(둘 다 시도해 볼 것.) |
인덱스 이름 바꾸기 | 데이터프레임.rename(index={'기존이름':'신이름'}) | |
데이터 크기 살피기 | len(df.index) | |
인덱스 이어붙이기(행 합치기) | df = pd.concat([df1, df2, df3,...]) | 이렇게 쓰면 인덱스들을 이어붙인다. |
뒤의 i개만 남기기 | df = df.tail(i) |