본문 바로가기
programming/python

python3 - 판다스 - 데이터프레임 - 수정방법

by sniffer-k 2023. 6. 18.

판다스 모듈 데이터 프레임을 사용할때 가장 중요한게 읽은 데이터를 적절하게 가공하는것이다 !

class pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)

 

이번 글에서 테스트할 엑셀 데이터 구조는 다음과 같다

(위 데이터 생성은 crean python API 를 이용하여 삼성전자 일별 데이터 정보를 엑셀로 저장한것이다 )

 

sample.xls

 

판다스 / 데이터 프레임 axis 값 의미

 

※ 판다스 데이터 프레임에서 "drop" 멤버 함수를 이용하여 내부 데이터를 삭제할 수있다 이때 인자값으로 axis 값이 사용되며, 0 은 열 (세로축) 1은 행 (가로축)을  지정한다 

 

  • 특정 행,열 데이터 제거  주요 호출 함수 

기본원형

DataFrame.drop(labels=None, *, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

 

ex ) DataFrame.drop( 0  ,axis = 0 or 1 )  # 0번 행 or 열 삭제 

ex ) DataFrame.drop( labels = range[0,2]  ,axis = 0 or 1 )  #  0 ~ 1 번 행 or 열 삭제 

ex ) DataFrame.drop( [4,5]  ,axis = 0 or 1 )  #  4,5 로 명시된 칼럼 번 행 or 열 삭제 

 

  • 특정 행 데이터 제거 example 
import pandas as pd

df1 = pd.read_excel('./samsung.xlsx', sheet_name='dage')

print(df1)

print("shape : {}".format( df1.shape) )

new_df1 = df1.drop(0, axis = 0)	# 0번 행 데이터 삭제 
print(new_df1)
#     Unnamed: 0        날짜     시가     고가     저가     종가       거래량
# 1            1  20230120  62100  62300  61100  61800   9646327.   --> 삭제되서 1번부터 보임
# 2            2  20230125  63500  63700  63000  63400  16822710
# 3            3  20230126  63800  63900  63300  63900  13278277
# 4            4  20230127  64400  65000  63900  64600  18760182
# 5            5  20230130  64900  64900  63100  63300  20995234
# ..         ...       ...    ...    ...    ...    ...       ...

new_df2 = df1.drop(labels=range(0, 2), axis = 0)	# 0~ 1번 행 데이터 삭제 
print(new_df2)

#     Unnamed: 0        날짜     시가     고가     저가     종가       거래량
# 2            2  20230125  63500  63700  63000  63400  16822710.     --> 삭제되서 2번부터 보임 
# 3            3  20230126  63800  63900  63300  63900  13278277
# 4            4  20230127  64400  65000  63900  64600  18760182
# 5            5  20230130  64900  64900  63100  63300  20995234
# 6            6  20230131  63500  63700  61000  61000  29746731

new_df3 = df1.drop([4,5], axis=0)
print(new_df3)

#     Unnamed: 0        날짜     시가     고가     저가     종가       거래량
# 0            0  20230119  60500  61500  60400  61500  12808490
# 1            1  20230120  62100  62300  61100  61800   9646327
# 2            2  20230125  63500  63700  63000  63400  16822710
# 3            3  20230126  63800  63900  63300  63900  13278277.  --> 4,5 행  삭제 
# 6            6  20230131  63500  63700  61000  61000  29746731

 

  • 특정 열 데이터 제거 예제 
import pandas as pd

df1 = pd.read_excel('./samsung.xlsx', sheet_name='dage')

print(df1)

print(df1.columns)
# -> Index(['Unnamed: 0', '날짜', '시가', '고가', '저가', '종가', '거래량'], dtype='object')

print("shape : {}".format( df1.shape) )

new_df1 = df1.drop(df1.columns[[0,1]], axis = 1)	# 0,1 번 칼럼 열 삭제 
print(new_df1)

#        시가     고가     저가     종가       거래량. --> unamed , 날짜 열 삭제 
# 0   60500  61500  60400  61500  12808490
# 1   62100  62300  61100  61800   9646327
# 2   63500  63700  63000  63400  16822710
# 3   63800  63900  63300  63900  13278277
# 4   64400  65000  63900  64600  18760182
# ..    ...    ...    ...    ...       ...

new_df3 = df1.drop(['Unnamed: 0','날짜','시가','고가','저가','거래량'], axis=1)

print(new_df3)
#        종가.  --> 종가랑 인덱스만 남김 
# 0   61500
# 1   61800
# 2   63400
# 3   63900
# 4   64600
# ..    ...

 

 


https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.drop.html

728x90