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