Pandas에서는 assign, insert, loc 및 iloc과 같은 다양한 방법을 사용하여 DataFrame에 열을 추가할 수 있습니다.
assign 방법: 열 이름과 값을 지정하여 할당 메서드를 사용하여 DataFrame에 새 열을 추가할 수 있습니다. 예를 들어 다음 코드는 값이 "value1", "value2" 및 "value3"인 "col3"이라는 새 열을 추가합니다.
df = df.assign(col3 = ['value1', 'value2', 'value3'])
이 방법은 새 열과 함께 새 DataFrame을 반환하고 원래 DataFrame을 수정하지 않기 때문에 DataFrame에 열을 추가하는 가장 빠른 방법 중 하나로 간주됩니다.
insert 방법: 삽입 메서드를 사용하여 새 열의 위치, 열 이름 및 값을 지정하여 DataFrame에 새 열을 추가할 수 있습니다. 예를 들어 다음 코드는 값이 "value1", "value2" 및 "value3"인 위치 2에 "col3"이라는 새 열을 추가합니다.
df.insert(2, 'col3', ['value1', 'value2', 'value3'], True)
이 방법은 원래 DataFrame을 수정하지 않고 특정 위치에 새 열을 삽입할 수 있으므로 loc 또는 iloc 방법을 사용하는 것보다 빠른 것으로 간주됩니다.
loc 및 iloc 방법: loc 및 iloc 메서드를 사용하여 행 인덱스와 각 열의 값을 지정하여 DataFrame에 새 열을 추가할 수 있습니다. 예를 들어 다음 코드는 "col3"이라는 새 열을 DataFrame에 추가합니다.
df.loc[:, 'col3'] = ['value1', 'value2', 'value3']
또는
df['col3'] = ['value1', 'value2', 'value3']
이러한 메서드는 원래 DataFrame을 수정하므로 할당 및 삽입 메서드보다 느린 것으로 간주됩니다.
실행 속도 측면에서 DataFrame에 열을 추가하는 가장 빠른 방법은 새 열과 함께 새 DataFrame을 반환하므로 assign 메서드를 사용하는 것입니다.
삽입 방법은 원래 DataFrame을 수정하지 않고 특정 위치에 새 열을 삽입할 수 있으므로 빠른 것으로 간주됩니다.
loc 및 iloc 방법은 원래 DataFrame을 수정하므로 속도가 느립니다.
따라서 속도는 assign > insert > loc/iloc 순으로 실행 속도가 빠른 것을 알 수 있습니다.
DataFrame에 새 열을 추가할 때 새 열의 길이는 원래 DataFrame의 행 수와 일치해야 합니다. 길이가 일치하지 않으면 오류가 발생하거나 일치하지 않는 행에 NaN 값이 있는 새 열이 추가됩니다.
실습 코드 예시
import pandas as pd
# Create a DataFrame
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
# Using the assign method
df = df.assign(col3 = ['value1', 'value2', 'value3'])
print(df)
'''
col1 col2 col3
0 1 4 value1
1 2 5 value2
2 3 6 value3
'''
# Using the insert method
df.insert(2, 'col4', ['value4', 'value5', 'value6'], True)
print(df)
'''
col1 col4 col2 col3
0 1 value4 4 value1
1 2 value5 5 value2
2 3 value6 6 value3
'''
# Using the loc method
df.loc[:, 'col5'] = ['value7', 'value8', 'value9']
print(df)
'''
col1 col4 col2 col3 col5
0 1 value4 4 value1 value7
1 2 value5 5 value2 value8
2 3 value6 6 value3 value9
'''
# Using the iloc method
df['col6'] = ['value10', 'value11', 'value12']
print(df)
'''
col1 col4 col2 col3 col5 col6
0 1 value4 4 value1 value7 value10
1 2 value5 5 value2 value8 value11
2 3 value6 6 value3 value9 value12
'''
'Dev' 카테고리의 다른 글
python pandas 컬럼(column)수정 여러가지 방법[예시코드 포함] (0) | 2023.01.23 |
---|---|
Python에서 Pandas DataFrame의 컬럼(columns) 삭제 방법[예시코드 포함] (0) | 2023.01.17 |
소프트웨어 개발 방법론(Agile) (0) | 2023.01.17 |
Pandas 설치 방법 (0) | 2023.01.17 |
스타트업에서 적용하는 소프트웨어 개발 방법론 종류 (2) | 2023.01.17 |