안녕하세요, 차가운 운영자입니다.
pandas로부터 csv 파일을 읽힌 dataframe의 행과 열을 컨트롤 하는 방법을 설명드립니다.
import pandas as pd
# csv 파일로부터 데이터 읽기
dt = pd.read_csv('C:\\temp\\test_data.csv', sep=",", encoding="utf-8")
print(dt)
# branch 22-th 23-th 24-th 25-th 26-th
# 0 busan 10000 53000 63000 49000 33000
# 1 daejun 82000 19000 51000 30000 85000
# 2 inchun 99000 42000 48000 83000 73000
print('컬럼헤더', dt.columns.tolist())
# 컬럼헤더 ['branch', '22-th', '23-th', '24-th', '25-th', '26-th']
print('인덱스라벨', dt.index.tolist())
# 인덱스라벨 [0, 1, 2]
# 행과 열을 바꾸기
dt1 = dt.transpose()
print(dt1)
# 0 1 2
# branch busan daejun inchun
# 22-th 10000 82000 99000
# 23-th 53000 19000 42000
# 24-th 63000 51000 48000
# 25-th 49000 30000 83000
# 26-th 33000 85000 73000
print('컬럼헤더', dt1.columns.tolist())
# 컬럼헤더 [0, 1, 2]
print('인덱스라벨', dt1.index.tolist())
# 인덱스라벨 ['branch', '22-th', '23-th', '24-th', '25-th', '26-th']
# 첫번째 행을 컬럼헤더로 지정
dt2 = dt1.rename(columns=dt1.iloc[0])
print(dt2)
# busan daejun inchun
# branch busan daejun inchun
# 22-th 10000 82000 99000
# 23-th 53000 19000 42000
# 24-th 63000 51000 48000
# 25-th 49000 30000 83000
# 26-th 33000 85000 73000
print('컬럼헤더', dt2.columns.tolist())
# 컬럼헤더 ['busan', 'daejun', 'inchun']
print('인덱스라벨', dt2.index.tolist())
# 인덱스라벨 ['branch', '22-th', '23-th', '24-th', '25-th', '26-th']
# 첫번째 행 재거
dt3 = dt2.drop(dt2.index[0])
print(dt3)
# busan daejun inchun
# 22-th 10000 82000 99000
# 23-th 53000 19000 42000
# 24-th 63000 51000 48000
# 25-th 49000 30000 83000
# 26-th 33000 85000 73000
print('컬럼헤더', dt3.columns.tolist())
# 컬럼헤더 ['busan', 'daejun', 'inchun']
print('인덱스라벨', dt3.index.tolist())
# 인덱스라벨 ['22-th', '23-th', '24-th', '25-th', '26-th']
# 인덱스 라벨을 첫번째 컬럼으로 전환(먼저 인덱스의 이름을 지정후 변환)
dt3.index.name = 'day'
dt4=dt3.reset_index()
print(dt4)
# day busan daejun inchun
# 0 22-th 10000 82000 99000
# 1 23-th 53000 19000 42000
# 2 24-th 63000 51000 48000
# 3 25-th 49000 30000 83000
# 4 26-th 33000 85000 73000
print('컬럼헤더', dt4.columns.tolist())
# 컬럼헤더 ['busan', 'daejun', 'inchun']
print('인덱스라벨', dt4.index.tolist())
# 인덱스라벨 ['22-th', '23-th', '24-th', '25-th', '26-th']
print("end of file")
이상입니다.