row & column 의 추가 및 제거


1
import pandas as pd
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. row의 추가

df_name .append ( {…} , ignore_index = True )

dictionary 형태의 데이터를 만들어 준다음 append() 함수를 사용하여 데이터를 추가할 수 있다. ignore_index=True옵션을 반드시 같이 추가해야한다

1
df = df.append({'이름': '홍길동', '그룹': 'a그룹', '소속사':'A사', '성별': '남자', '생년월일': '1990-01-01', '키': 185.0, '혈액형': 'B', '브랜드평판지수': 12345678}, ignore_index=True)
1
df.tail()
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
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
15 홍길동 a그룹 A사 남자 1990-01-01 185.0 B 12345678


2. column의 추가

새로운 column을 만들고 값을 대입해주면, column이 쉽게 추가될 수 있다

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['국적'] = '대한민국'
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 대한민국

새로운 column의 값을 다르게 부여하고 싶다면 loc 함수를 활용하면 된다

1
df.loc[ df['이름'] == '지드래곤', '국적'] = 'korea'
1
df.head()
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수 국적
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260 대한민국
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947 korea
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 대한민국


3. row의 제거

  • 하나의 행: df_name .drop (index_num, axis = 0)
  • 복수의 행: df_name .drop ( [ index_num1, index_num2 ], axis = 0)
1
df
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
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
df.drop(3, axis = 0)
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
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
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
df.drop([3, 5], axis = 0)
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
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
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
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


4. column의 제거

  • 하나의 열: df_name .drop ( ‘col_name’, axis = 1)
  • 복수의 열: df_name .drop ( [ ‘col_name1’, ‘col_name2’ ], axis = 1)
1
df
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
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
df.drop("그룹", axis = 1)
이름 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 커넥트 남자 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
df.drop(["그룹", "소속사"], axis = 1)
이름 성별 생년월일 혈액형 브랜드평판지수
0 지민 남자 1995-10-13 173.6 A 10523260
1 지드래곤 남자 1988-08-18 177.0 A 9916947
2 강다니엘 남자 1996-12-10 180.0 A 8273745
3 남자 1995-12-30 178.0 AB 8073501
4 화사 여자 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 태연 여자 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