본문 바로가기
Python/Pandas

Pandas Selection(변수선택)

by 찐남 2021. 9. 14.
본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다.

 

 

 

선택 및 설정을 위한 표준 Python/NumPy 표현식은 직관적이고 대화형 작업에 유용하지만 프로덕션 코드의 경우 최적화된 pandas 데이터 액세스 방법(.at, .iat, .loc and .iloc)을 권장합니다.

 

2021.09.12 - Pandas 객체 생성에서 생성한 예제 데이터 프레임을 계속 사용하도록 하겠습니다.

 

1. 가져오기

 

df.A와 동일한 시리즈를 생성하는 단일 열 선택

df["A"]

 

행을 슬라이싱하는 []를 통해 선택

df[0:3]

 

df["20130102":"20130104"]

 

 

 

2. 라벨에 의한 선택

 

레이블을 사용하여 횡단면 가져오기

df.loc[dates[0]]


레이블로 여러 축 선택

df.loc[:, ["A", "B"]]

 

레이블 슬라이싱을 표시하면 두 끝점이 모두 포함됩니다.

df.loc["20130102":"20130104", ["A", "B"]]

 

반환된 개체의 크기 축소

df.loc["20130102", ["A", "B"]]

 

스칼라 값을 얻으려면

df.loc[dates[0], "A"]

 

스칼라에 대한 빠른 액세스를 얻기 위해(이전 방법과 동일)

df.loc[dates[0], "A"]

 

 

 

3. 위치에 의한 선택

 

전달된 정수의 위치를 ​​통해 선택

df.iloc[3]

 

정수 슬라이스로 NumPy/Python과 유사하게 작동

df.iloc[3:5, 0:2]

 

NumPy/Python 스타일과 유사한 정수 위치 위치 목록으로

df.iloc[[1, 2, 4], [0, 2]]

 

명시적으로 행을 슬라이싱하는 경우

df.iloc[1:3, :]

 

명시적으로 열을 슬라이싱하는 경우

df.iloc[:, 1:3]

 

명시적으로 값을 얻으려면

df.iloc[1, 1]

 

스칼라에 대한 빠른 액세스를 얻기 위해

df.iat[1, 1]

 

 

 

4. 부울 인덱싱

 

단일 열의 값을 사용하여 데이터 선택

df[df["A"] > 0]

 

부울 조건이 충족되는 DataFrame에서 값 선택

df[df > 0]

 

필터링을 위한 isin() 메서드 사용

df2 = df.copy()
df2["E"] = ["one", "one", "two", "three", "four", "three"]
df2

 

df2[df2["E"].isin(["two", "four"])]

 

 

 

5. Setting

 

새 열을 설정하면 인덱스 별로 데이터가 자동으로 정렬됩니다.

s1 = pd.Series([1, 2, 3, 4, 5, 6], index=pd.date_range("20130102", periods=6))
s1

 

df["F"] = s1
df

 

레이블별 값 설정

df.at[dates[0], "A"] = 0
df

 

위치별 값 설정

df.iat[0, 1] = 0
df

 

NumPy 배열로 할당하여 설정

df.loc[:, "D"] = np.array([5] * len(df))

 

where 연산자 활용

df2 = df.copy()
df2[df2 > 0] = -df2
df2

 

 

 

반응형

'Python > Pandas' 카테고리의 다른 글

Pandas Operations  (0) 2021.09.16
Pandas Missing data  (0) 2021.09.15
Pandas 데이터 보기(Viewing)  (0) 2021.09.13
Pandas 객체 생성  (0) 2021.09.12
Pandas 텍스트 데이터 다루기  (0) 2021.08.21

댓글