파일 불러오기 및 복사


1. csv파일 읽어오기 – "pd.read_csv"

1-1. Jupyter Notebook 기반

1
import pandas as pd
1
pd.read_csv('korean-idol.csv')
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
5 정국 방탄소년단 빅히트 남자 1997-09-01 178.0 A 5208335
6 민현 뉴이스트 플레디스 남자 1995-08-09 182.3 O 4989792
7 소연 아이들 큐브 여자 1998-08-26 NaN B 4668615
8 방탄소년단 빅히트 남자 1992-12-04 179.2 O 4570308
9 하성운 핫샷 스타크루이엔티 남자 1994-03-22 167.1 A 4036489
10 태연 소녀시대 SM 여자 1989-03-09 NaN A 3918661
11 차은우 아스트로 판타지오 남자 1997-03-30 183.0 B 3506027
12 백호 뉴이스트 플레디스 남자 1995-07-21 175.0 AB 3301654
13 JR 뉴이스트 플레디스 남자 1995-06-08 176.0 O 3274137
14 슈가 방탄소년단 빅히트 남자 1993-03-09 174.0 O 2925442

1-2. Colab 기반

방법 1. 로컬에서 파일 읽어오기

1
2
3
4
5
6
from google.colab import files
myfile = files.upload()

import io

pd.read_csv(io.BytesIO(myfile['korean-idol.csv']))

방법 2: 구글 드라이브에 있는 샘플 파일 읽어오기

1
2
3
4
5
6
7
8
9
from google.colab import drive
drive.mount('/content/drive')

# 나타나는 link에 따라 google drive 로그인하여 link복사,
# 'Enter your authorization code:'에서 복사된 link를 입력

filename = 'colab 왼쪽 목록에서 파일 경로를 복사하여 붙혀놓기'

pd.read_csv(filename)



2. Excle파일 읽어오기 – "pd.read_excel"

2-1. Jupyter Notebook 기반

1
pd.read_excel('korean-idol.xlsx')
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
5 정국 방탄소년단 빅히트 남자 1997-09-01 178.0 A 5208335
6 민현 뉴이스트 플레디스 남자 1995-08-09 182.3 O 4989792
7 소연 아이들 큐브 여자 1998-08-26 NaN B 4668615
8 방탄소년단 빅히트 남자 1992-12-04 179.2 O 4570308
9 하성운 핫샷 스타크루이엔티 남자 1994-03-22 167.1 A 4036489
10 태연 소녀시대 SM 여자 1989-03-09 NaN A 3918661
11 차은우 아스트로 판타지오 남자 1997-03-30 183.0 B 3506027
12 백호 뉴이스트 플레디스 남자 1995-07-21 175.0 AB 3301654
13 JR 뉴이스트 플레디스 남자 1995-06-08 176.0 O 3274137
14 슈가 방탄소년단 빅히트 남자 1993-03-09 174.0 O 2925442

2-2. Colab 기반

구글 드라이브에 있는 샘플 파일 읽어오기

1
2
3
4
5
6
from google.colab import drive
drive.mount('/content/drive')

filename = '파일 경로 붙혀놓기'

pd.read_excel(filename)


3. 복사 (copy)

dataframe을 복사할 때 "df_name.copy()"를 사용한다


  • "="를 사용하여 원본데이터를 "복사"하면 복사된 데이터를 수정할 때 원본 데이터도 같이 변화한다
1
df = pd.read_csv('korean-idol.csv')
1
df.head()
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928

1
df_new = df
1
df_new.head()
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928

1
df_new['이름'] = 0
1
df_new.head()
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 0 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 0 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 0 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 0 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 0 마마무 RBW 여자 1995-07-23 162.1 A 7650928
1
df.head()
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 0 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 0 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 0 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 0 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 0 마마무 RBW 여자 1995-07-23 162.1 A 7650928

이렇게 되는 이유는 두 dataframe이 같은 메모리 주소를 참조하기 때문이다.

1
hex(id(df_new))
'0x25109f6e6c8'
1
hex(id(df))
'0x25109f6e6c8'

  • 원본 데이터를 유지 시키고, 새로운 변수에 복사할 때 copy() 를 사용한다
1
df = pd.read_csv('korean-idol.csv')
1
df_copy = df.copy()
1
df.head()
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
1
df_copy.head()
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928

복사된 dataframe이 원본 데이터와 같은 메모리 주소를 참조한다.

1
hex(id(df))
'0x25109fefa48'
1
hex(id(df_copy))
'0x25109ff4408'

copy본을 수정할 때 원본 데이터가 유지된다

1
df_copy['이름'] = 0
1
df_copy.head()
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 0 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 0 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 0 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 0 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 0 마마무 RBW 여자 1995-07-23 162.1 A 7650928
1
df.head()
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928