
시작하기 전에 import 하기
import numpy as np import pandas as pd import numba from pandas import DataFrame from datetime import datetime import math import pyperclip
DataFrame.to_dict(orient='dict', into=)
to_dict 메서드는 데이터프레임 객체를 dict 형태로 변환하는 메서드 입니다.
기본 사용법
※ 자세한 내용은 아래 예시를 참고 바랍니다.
df.to_dict(orient='dict', into=)
orient : 출력할 dict의 형태를 지정합니다. 형태는 아래와 같습니다.
dict : {열 : {행 : 값, 행 : 값}, 열 : {행 : 값, 행 : 값}
list : {열 : [ 값 ], 열 : [ 값 ] }
series : {열 : Series, 열 : Series}
split : { index : [ 행, 행 ], columns : [ 열, 열 ], data : [ 값, 값 ] }
records : [ { 열 : 값 , 열 : 값 }, { 열 : 값, 열 : 값 } ]
index : { 행 : {열 : 값, 열 : 값}, 행 : {열 : 값, 열 : 값} }
into : 반환값의 모든 매핑에 사용되는 collections.abc.Mapping 하위클래스입니다.
먼저 기본적인 사용법 예시를위하여 2x2 데이터를 만들어 보겠습니다.
df = pd.DataFrame([[1,2],[3,4]], columns=['col1','col2'],index=['row1','row2']) print(df)
기본적인 사용법
orient 인수를 설정함으로써 출력되는 dict객체의 형태를 정할 수 있습니다.
orient = 'dict'인 경우 {열 : {행 : 값, 행 : 값}, 열 : {행 : 값, 행 : 값} 형태로 변환합니다.print(df.to_dict(orient='dict'))
orient = 'list'인 경우 {열 : [ 값 ], 열 : [ 값 ] } 형태로 변환합니다.
print(df.to_dict(orient='list'))
orient = 'series'인 경우 {열 : Series, 열 : Series} 형태로 변환합니다.
print(df.to_dict(orient='series'))
orient = 'split'인 경우 { index : [ 행, 행 ], columns : [ 열, 열 ], data : [ 값, 값 ] } 형태로 변환합니다.
print(df.to_dict(orient='split'))
orient = 'records'인 경우 [ { 열 : 값 , 열 : 값 }, { 열 : 값, 열 : 값 } ] 형태로 변환합니다.
print(df.to_dict(orient='records'))
orient = 'index'인 경우 { 행 : {열 : 값, 열 : 값}, 행 : {열 : 값, 열 : 값} } 형태로 변환합니다.
print(df.to_dict(orient='index'))
DataFrame.to_markdown(buf=None, mode='wt', index=True, storage_options=None, kwargs)
to_markdown은 DataFrame 객체를 마크다운 형식으로 변환해주는 메서드입니다.
기본 사용법
※ 자세한 내용은 아래 예시를 참고 바랍니다.
df.to_markdown(buf=None, mode='wt', index=True, storage_options=None, kwargs)
buf : 쓸 버퍼입니다. 입력하지 않으면 문자열이 반환됩니다.
mode : 파일을 열때 모드입니다. 기본값은 'wt'입니다.
index : 인덱스를 출력할지 여부입니다. 기본값은 True입니다.
storage_options : 특정 스토리지 연결에 적합한 추가 옵션을 지정합니다. (예 : 호스트, 포트, 사용자 이름, 비밀번호 등)
kwargs : 추가 적용 가능한 tabulate의 키워드입니다.
먼저 기본적인 사용법 예시를위하여 2x2 데이터를 만들어 보겠습니다.
df = pd.DataFrame([[1,2],[3,4]], columns=['col1','col2'],index=['row1','row2']) print(df)
기본적인 사용법
아무 인수 없이 df.to_markdown()을 실행하면 마크다운 형태의 값이 출력됩니다.print(df.to_markdown())
실제 Markdown으로 출력시 아래와 같이 출력 됩니다.
| | col1 | col2 | |:-----|-------:|-------:| | row1 | 1 | 2 | | row2 | 3 | 4 |
index인수의 사용
index=False로 입력할 경우 인덱스가 제외됩니다.print(df.to_markdown(index=False))
DataFrame.to_string(buf=None, columns=None, col_space=None, header=True, index=True, na_rep='NaN', formatters=None, float_format=None, sparsify=None, index_names=True, justify=None, max_rows=None, max_cols=None, show_dimensions=False, decimal='.', line_width=None, min_rows=None, max_colwidth=None, encoding=None)
to_string 메서드는 데이터 객체를 단순 string 형태로 변형하는 메서드입니다.
기본 사용법
※ 자세한 내용은 아래 예시를 참고 바랍니다.
df.to_string(buf=None, columns=None, col_space=None, header=True, index=True, na_rep='NaN', formatters=None, float_format=None, sparsify=None, index_names=True, justify=None, max_rows=None, max_cols=None, show_dimensions=False, decimal='.', line_width=None, min_rows=None, max_colwidth=None, encoding=None)
buf : 저장할 버퍼 입니다. None이면 문자열로 출력됩니다.
columns : 출력할 열을 지정합니다.
col_space : 열 너비를 지정합니다. .
header / index : 열/행 레이블의 출력 여부 입니다. False이면 출력하지 않습니다.
리스트 형태로 입력하여 레이블명의 변경이 가능합니다.
na_rep : 결측값의 표현 방식 입니다.
formatters : 포매터 함수를 통해 값의 포맷을 설정합니다. .format() 메서드도 사용 가능합니다.
float_format : 소수점 단위 자리수를 지정합니다. 기본은 마침표( . ) 입니다.
※ formatters / float_format 의 사용법은 19-07 html형태 변환to_html 에 자세히 설명 되어있으므로 참고 바랍니다.
sparsify : 각 행의 모든 다중 인덱스 키를 인쇄하려면 계층적 인덱스가 있는 DataFrame에 대해 False로 설정합니다.
index_names : 인덱스명을 출력할지를 정합니다.
justify : 정렬 방식을 지정합니다.
maxrows : 최대 출력할 줄 수를 지정합니다. 초과되는 줄은 ( ... )형태로 축약됩니다.
maxcols : 최대 출력할 열 수를 지정합니다. 초과되는 줄은 ( ... )형태로 축약됩니다.
show_dimensions : 출력된 html 객체 아래에 데이터 객체의 차원을 출력합니다.
decimal : 1000단위 구분기호로 인식되는 문자를 지정합니다.
linewidth : 문자로 줄바꿈할 너비 입니다.
minrow : maxrows로인해 잘린 표현을 표시할 수 입니다.
max_colwidth : 각 열을 문자열로 자르기 위한 최대 너비입니다. 기본값은 무제한 입니다.
encoding : 인코딩을 지정합니다.
먼저 기본적인 사용법 예시를위하여 3x2 데이터를 만들어 보겠습니다.
data = [[1,np.nan],['A',4.179],['<&>',32000]] df = pd.DataFrame(data,columns=['col1','col2']) df=df.rename_axis(columns='index') print(df)
기본적인 사용법
to_string( )메서드를 사용하면 데이터 객체의 기본 타입인 pandas.core.frame.DataFrame을 string으로 변경합니다.
(실행 예시1)print(df.to_string())
(실행 예시2)print(type(df))
(실행 예시3)print(type(df.to_string()))
columns 인수의 사용
columns 인수를 입력하여 특정 열만 출력이 가능합니다. list 형태로 입력하여야합니다print(df.to_string(columns=['col2']))
col_space 인수의 사용
col_space 인수를 입력하여 열 너비를 지정할 수 있습니다.print(df.to_string(col_space=[10,20]))
header 인수의 사용
header 인수를 입력하여 열 이름을 지정할 수 있습니다. True 나 False, None를 입력하여 출력 여부를 설정할 수도 있습니다.print(df.to_string(header=['val1','val2']))
index인수의 사용
index 인수를 이용해 index의 출력 여부를 정할 수 있습니다.print(df.to_string(index=False))
na_rep 인수의 사용
na_rep인수를 입력하여 결측치(NaN등)의 표현값을 변경할 수 있습니다.print(df.to_string(na_rep='결측'))
index_names인수의 사용
index_names를 설정함으로서 인덱스명의 출력 여부를 정할 수 있습니다. 기본값은 True입니다.print(df.to_string(index_names=False))
max_raws / max_cols 인수의 사용
max_raws / max_cols 인수를 사용해 출력할 최대 행/열 수를 지정할 수 있습니다. 초과분은 ( ... )로 함축되어 표현됩니다.
(사용 예시1)print(df.to_string(max_rows=2))
(사용 예시2)print(df.to_string(max_cols=1))
show_dimensions인수의 사용
show_dimensions인수를 이용하여 데이터의 차원을 출력할 수 있습니다.print(df.to_string(show_dimensions=True))
decimal 인수의 사용
decimal인수를 사용하여 1000단위 표현값을 지정할 수 있습니다. 기본값은 콤마( , ) 입니다.print(df.to_string(decimal='_'))
line_width인수의 사용
linde_width인수값을 입력하여 줄바꿈할 열의 너비를 지정할 수 있습니다.print(df.to_string(line_width=2))
max_colwidth인수의 사용
max_colwidth 인수를 이용하여 열 내의 문자열 길이를 제한할 수 있습니다. 초과하는 문자는 ( ... ) 으로 함축됩니다.print(df.to_string(max_colwidth=5))
DataFrame.values
DataFrame.to_numpy를 사용하는것을 추천합니다.
DataFrame 요소를 Numpy 형태(numpy.ndarray)로 반환합니다. 레이블은 삭제됩니다.
기본 사용법
df.values
먼저, 아래와 같이 기본적인 4x4 행렬을 만듭니다. col1은 숫자, col2는 문자, col3은 float, col4는 bool의 dtype을 가집니다.
col1 = [1, 2, 3, 4] col2 = ['one', 'two', 'three', 'four'] col3 = [1.5, 2.5, 3.5, 4.5] col4 = [True, False, False, True] index = ['row1','row2','row3','row4'] df = pd.DataFrame(index=index, data={"col1": col1, "col2": col2, "col3": col3, "col4": col4}) print(df)
여기에 values함수를 적용할 경우 아래와 같은 결과가 반환됩니다. 결과값은 numpy.ndarray형태로
반환되며, 레이블이 사라진것을 확인할 수 있습니다.result = df.values print(result)
DataFrame.DataFrame.from_dict(data, orient='columns', dtype=None, columns=None)
from_dict메서드는 dict객체로부터 DataFrame 객체로 변환하는 메서드입니다.
기본 사용법
※ 자세한 내용은 아래 예시를 참고 바랍니다.
df.from_dict(data, orient='columns', dtype=None, columns=None)
data : dict 형태의 데이터 입니다.
orient : {index / columns / tight} 변환 방식입니다. index은 행을 키값으로 지정, columns는 열을 키값으로 지정, tight는 키값으로 [index / columns / data / index_names / columns_names] 를 가집니다.
dtype : 데이터의 type을 강제로 지정할 수 있습니다.
columns : index인수를 사용할 경우 columns인수를 통해 열 이름을 지정할 수 있습니다.
기본적인 사용법
orient인수의 기본값은 'columns'로 키값으로 열 이름을 사용하게 됩니다.data = {'col1':[1,3],'col2':[2,4]} df = pd.DataFrame.from_dict(data=data, orient='columns') print(df)
orient인수가 'index'인 경우 키 값으로 행 이름을 사용하게 됩니다.
data = {'row1':[1,2],'row2':[3,4]} df = pd.DataFrame.from_dict(data=data, orient='index') print(df)
orient인수가 'index'인 경우 columns인수를 통해 열 이름을 추가로 설정할 수 있습니다.data = {'row1':[1,2],'row2':[3,4]} df = pd.DataFrame.from_dict(data=data, orient='index', columns=['col1','col2']) print(df)
dtype 인수를 이용하면 값의 type을 강제로 지정할 수 있습니다.
data = {'row1':[1,2],'row2':[3,4]} df = pd.DataFrame.from_dict(data=data, orient='index', columns=['col1','col2'],dtype='float') print(df)
orient='tight'인 경우 'index' / 'columns' / 'data' / 'index_names' / 'column_names'를 키 값으로 지정하여 세부내용을 설정 할 수 있습니다.
※1.4.0 버전부터만 사용 가능합니다.data = {'index': [('idx1','row1'),('idx1','row2')], # 인덱스 이름 설정, 멀티 인덱스 가능 'columns': [('col1','val1'),('col2','val2')], # 열 이름 설정, 멀티 컬럼 가능 'data': [[1,2],[3,4]], # 데이터 값 설정 'index_names': ['I1','I2'], # 인덱스명 설정 'column_names': ['C1','C2']} # 컬럼명 설정 df = pd.DataFrame.from_dict(data=data, orient='tight') print(df)
data = {'index'}

---