Snoopy [Python] Pandas - 7. 데이터프레임 원하는 값만 출력하기
Python/Pandas

[Python] Pandas - 7. 데이터프레임 원하는 값만 출력하기

Sooyoon Jeong 2022. 10. 26.
import pandas as pd

df_grade = pd.DataFrame()

df_grade["이름"] = ["김가영", "정나영", "이다영"]
df_grade["나이"] = [27, 26, 28]
df_grade["성별"] = ["남자", "냠자", "냠자"]
df_grade["학점"] = ["4.5", "4.0", "3.5"]
df_grade["성"] = ["kim", "jeong", "LEE"]
df_grade

1. 데이터프레임과 시리즈 출력하기

print(df_grade): 데이터프레임 출력
prinnt(df_grade["이름"]): 시리즈 출력

2. 컬럼명으로 원하는 값 출력

1) 1개 컬럼 가져오기

df_grade["이름"]

#시리즈 형태로 가져오는 것이다. [ ]

2) 다수의 컬럼 가져오기

df_grade[["이름","나이"]]

#데이터프레임 형태로 가져오는 것이다. [[ ]]

3. loc와 iloc

1) loc

행을 기준으로 데이터프레임을 가져온다. (즉, 라벨/boolean array 등 이름으로 가져옴)

 ※ 인덱스 값이 문자형태인 경우에도 loc로 가져올 수 있다. 

# 인덱스 번호로 첫번째 데이터 가져오기
df_grade.loc[0]

# 위에서 3개의 행 데이터 가져오기
df_grade.loc[[0,1,2]]
df_grade.loc[0:2]
# 행과 열을 함께 가져오기
#loc[행, 열]
df_grade.loc[0, "이름"]

df_grade.loc[[0,1,2], "이름"]
df_grade.loc[0:3, "이름"]

# 슬라이싱을 할 때는 대괄호를 빼주어야 한다.

 

✏️loc[조건, 가져올 값]

조건에 맞는 컬럼만 가져올 수 있다.

df_seoul = df.loc[df["시도별"] == "서울특별시", :]

 

2) iloc

인덱스를 기준으로 데이터프레임 가져온다.

(즉, (행)번호로 가져온다. = iloc는 숫자로만 가져올 수 있다.)

# 데이터프레임으로 불러오기
df.loc[[0,1,2], ["이름", "나이"]]
df.iloc[0:3,0:2]
df.iloc[0:3, [0,1]]

 

4. 조건에 부함하는 것만 가져오기

1) 특정 문자열이 들어가는 데이터프레임만 가져오기: str.contains(" ")

df_grade["이름"].str.contains("김가영")

#불리언 인덱싱
df_grade[df_grade["이름"].str.contains("김가영")]

 

2) 특정 조건을 부합하는 데이터프레임만 가져오기

df_grade[df_grade["학점"] > "3.5"]

 

3) 파이썬 정규표현식에서의 and, or

|

&

댓글