Python/Pandas
[Pandas 기초] Pandas의 Select, Drop
유달잇
2021. 6. 15. 23:58
728x90
Pandas에서 데이터를 가져오고 삭제해보자.
1. df.head( )
import pandas as pd
import numpy as np
df = pd.read_excel("./data/example.xlsx")
# 앞의 5개 데이터 출력
df.head()
-> 기본적으로 5개의 데이터를 출력하며 숫자를 지정하여 원하는 개수만큼 출력할 수 있다.
2. df[ : ]
# row인덱스 기준으로 3개의 데이터 출력 (0,1,2)
df[:3]
-> row(행) 인덱스 기준으로 데이터를 출력한다.
3. df["abc"]
# account 컬럼의 앞 2개의 데이터 출력
df["account"].head(2)
-> df의 account컬럼을 출력하며 앞의 2개의 데이터만 출력한다.
4. 이렇게도 할 수 있다.
a = df["account"]
a[:3]
a = df["account"]
a[[0,1,2]]
-> df의 account 컬럼을 a 변수에 대입하고 a의 0~2(0,1,2) 인덱스 번호의 데이터를 출력한다.
두 개는 같은 결과를 출력한다.
5. df[ 조건 ]
# 조건에 맞는 데이터 출력
account = df["account"]
account[account<25000]
-> 조건에 맞는 시리즈를 출력한다.
6. df.index( )
#ex1
df.index = df["account"]
#ex2
df.index = list(range(0,15))
-> 데이터프레임의 기본 인덱스는 0부터~까지 자동으로 지정되나 임의로 지정할 수 있다.
-> ex1의 결과로, df의 인덱스 값을 account컬럼값으로 변경했다.
또는 ex2는 range를 사용하여 순차적으로 숫자를 인덱스값으로 지정한 것이다.
7. 다양한 방법 사용하여 조회하기
7-1. 컬럼의 이름과 인덱스 번호를 지정하여 출력
df[["name","street"]][:2]
7-2. 인덱스의 값과 컬럼 이름을 지정하여 출력
df.loc[[21111,32222],["name","street"]]
7-3. iloc 사용해서 인덱스 번호로만 출력
df.iloc[:2,:2]
8. 데이터 삭제하기 ( df.drop(row number) )
# ex1
df.drop(1)
# ex2
df.drop([0,1,2,3])
# ex3 축 기준, axis=1을 꼭 넣어주어야함
df.drop("city", axis=1)
df.drop(["city","state"], axis=1)
-> .drop을 사용하여 컬럼을 삭제한다.
row number를 기준으로 삭제하며 axis를 지정하여 축 기준으로 삭제할 수도 있다.
9. 주의할 점
Pandas에서는 원본 데이터를 쉽게 삭제하지 않는다.
drop을 사용할 경우 데이터프레임 원본 데이터가 삭제되는 것이 아니라 데이터프레임의 복사본을 만든 후 그 복사본의 데이터를 삭제하여 보여준 것이다.
원본 데이터를 변환하고 싶으면 inplace argument를 지정해주어야 한다.
df.drop(["city","state"], axis=1, inplace=True)
[AI Tech Pre-course] 인공지능(AI) 기초 다지기
부스트코스 무료 강의
www.boostcourse.org
728x90