Pandas 


.insert(loc, column, value)

▶ loc : 새 컬럼을 넣을 위치(0부터 시작하는 인덱스)

 column : 새 컬럼의 이름

 value : 새 컬럼에 들어갈 값(리스트, Series 등)

 

import pandas as pd

# 예시 DataFrame 생성
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 새로운 컬럼 'C'를 열 인덱스 1 위치에 추가
df.insert(1, 'C', [10, 20, 30])

print(df)

 

내가 작성한 코드

import os

def process_sheet(file_path, output_path):

    # 입력 파일 존재 여부 및 출력 디렉터리 확인
    if not os.path.isfile(file_path):
        print("❌ 입력한 파일 경로가 존재하지 않습니다.")
        return
    if not os.path.isdir(output_path):
        print("❌ 변환 경로가 존재하지 않습니다.")
        return

    # low_memory=False로 해두면 파일 크기가 매우 큰 경우에는 메모리 사용량이 많아질 수 있지만 파일을 더 천천히 읽을 수 있게 되어, 데이터 타입 추론이 더 정확해짐
    df = pd.read_csv(file_path, low_memory=False)
    
    """
    1. Creation Date -> created_date
    2. Modified Date -> modified_date
    3. id 컬럼은 맨 뒤에 추가
    """

    # 'created_date'와 'modified_date'를 해당 컬럼 바로 뒤에 삽입
    df.insert(df.columns.get_loc('Creation Date') + 1, 'created_date', pd.NA)
    df.insert(df.columns.get_loc('Modified Date') + 1, 'modified_date', pd.NA)
    # 'id' 컬럼은 마지막 열에 추가
    df['id'] = None

 

# 'created_date'와 'modified_date'를 해당 컬럼 바로 뒤에 삽입
df.insert(df.columns.get_loc('Creation Date') + 1, 'created_date', pd.NA)
df.insert(df.columns.get_loc('Modified Date') + 1, 'modified_date', pd.NA)
# 'id' 컬럼은 마지막 열에 추가
df['id'] = None

 

실제로 사용할 때는 csv 파일의 컬럼 수가 너무 많기 때문에

import os

df.insert(df.columns.get_loc('Creation Date') + 1, 'created_date', pd.NA)

 

df.insert(df.columns.get_loc('컬럼명') 이렇게 해서 원하는 컬럼의 위치를 가지고 옵니다.

그러고 해당 컬럼의 바로 뒤에 추가하고 싶으니까 + 1을 해주면 원하는 위치에 컬럼이 생성됩니다.

💡 pd.NA
사용 가능 dtype : nullable(Int64, string 등)
연산 가능? : 명확하지 않으면 오류 발생
목적 : Pandas 전용 결측값
0       1
1       2
2    <NA>
dtype: Int64  ← 정수 유지됨!​

+ Recent posts