본문 바로가기
Python/Data Analysis

[파이썬, Python] Pandas 모듈 - 4️⃣ 데이터프레임 복사하기, 행/열 추가 및 삭제하기

by coding-choonsik 2023. 6. 12.
728x90
반응형
SMALL

1. 데이터프레임 복사하기

df = pd.read_csv('http://bit.ly/ds-korean-idol')
df

new_df = df  # 같은 메모리 주소를 가리킴
new_df

new_df['이름'] = '김사과'  # new_df의 '이름' 컬럼이 모두 '김사과'로 바뀜!

df  # 🤯 똑같이 바뀜!, 같은 메모리 주소를 가리키고 있기 때문에

 

✅ new_df와 df의 메모리주소를 알아보자.

# 16진수 형태(hex)의 메모리 주소를 가리키는 id를 반환
print(hex(id(new_df)))
print(hex(id(df)))

>>> 0x7f2aa6861330
0x7f2aa6861330

copy_df = df.copy()  # df를 카피하여 다른 메모리 주소를 가리키는 copy_df 변수에 저장
print(hex(id(copy_df)))  # copy(): 메모리 주소가 다름
print(hex(id(df)))
>>> 0x7f2aa54fc910
0x7f2aa6861330

 

 

copy_df['이름'] = '김사과'
copy_df.head()

df.head()  # 원본데이터는 바뀌지않음!


2. 행/열 추가 및 삭제하기

 

2-1. 행 추가하기

  • dict 형태의 데이터를 만들고, append() 함수를 사용하여 데이터를 추가함
  • 반드시 ignore_index = True 옵션을 추가해야 에러가 발생하지 않음
dic1 = {
    '이름': '김사과',
    '그룹': '애플',
    '소속사':'과일',
    '성별':'여자',
    '생년월일':'2000-01-10',
    '키':160,
    '혈액형':'A',
    '브랜드평판지수':987654321

}
df = df.append(dic1, ignore_index=True)

>>> <ipython-input-94-d0733fc9c288>:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
  df = df.append(dic1, ignore_index=True)  # 객체로 저장

 

2-2. 열 추가하기

  • 파생변수를 만들어 추가할 수 있음
df['국적'] = '대한민국'  # '국적'이라는 새로운 열을 만듦
df.tail()

 

# 김사과의 국적을 '미국'으로 변경(단, loc를 사용하여 작성)
df.loc[df['이름'] == '김사과', '국적'] = '미국'
df.tail()

 

 

2-3. 열 제거하기

df.drop('그룹', axis=1)

 

# 다중 열 지우기
df.drop(['그룹','소속사'], axis=1)

 

2-4. 행 제거하기

df.drop(15, axis=0)  #index로 지우기

# 다중 행 지우기
df.drop([1,3,5,15], axis=0)

 

 

728x90
반응형
LIST