본 포스팅은 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 |
댓글