Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 파이썬
- NLP
- konlpy
- pandas
- 랭체인
- 파이토치기본
- 판다스
- fastapi #파이썬웹개발
- 비지도학습
- deeplearning
- 판다스 데이터정렬
- 파이토치
- langchain
- 사이킷런
- OpenAIAPI
- 자연어분석
- programmablesearchengine
- MachineLearning
- 머신러닝
- HTML
- chatGPT
- Python
- 딥러닝
- sklearn
- python 정렬
- 파이썬웹개발
- 챗gpt
- fastapi
- pytorch
- fastapi #python웹개발
Archives
- Today
- Total
Data Navigator
[pandas] .loc를 사용하여 조건에 맞는 행 인덱싱(마스킹 인덱싱) 본문
pandas 마스킹 검색 df.loc[비교할 행 == True/False 조건 값]¶
- pandas의 DataFrame과 Series는 모두 ndarray 이므로 비교연산 및 브로드캐스팅이 적용될 수 있음
- df.loc[ 조건 비교할 컬럼과 조건 ] 으로 True, False를 체크하여 인덱싱 가능
In [1]:
import os
import pandas as pd
os.chdir(r"D:\bigdata\jupyter\data_preprocessing\1. 데이터 핸들링\데이터")
In [3]:
df = pd.read_csv('온라인_판매기록.csv', encoding='ANSI', engine='python')
df
Out[3]:
쇼핑몰 | 제품 | 수량 | 판매금액 | 쇼핑몰 유형 | |
---|---|---|---|---|---|
0 | 쿠팡 | 제품_16 | 8 | 1134400 | 쿠팡 |
1 | 쿠팡 | 제품_57 | 8 | 439200 | 쿠팡 |
2 | 쿠팡 | 제품_25 | 4 | 495200 | 쿠팡 |
3 | 쿠팡 | 제품_18 | 4 | 578000 | 쿠팡 |
4 | 쿠팡 | 제품_90 | 2 | 75000 | 쿠팡 |
... | ... | ... | ... | ... | ... |
5810 | 애견아우랫 | 제품_41 | 5 | 696500 | 동물병원 |
5811 | 애견아우랫 | 제품_98 | 6 | 590400 | 동물병원 |
5812 | 애견아우랫 | 제품_77 | 5 | 512500 | 동물병원 |
5813 | 애견아우랫 | 제품_04 | 6 | 256200 | 동물병원 |
5814 | 애견아우랫 | 제품_39 | 7 | 72800 | 동물병원 |
5815 rows × 5 columns
df.loc[ 조건 비교할 컬럼과 조건 ] 으로 조건을 비교하여 마스킹 인덱싱¶
In [5]:
# df.loc[ 조건 비교할 컬럼과 조건 ]
# df 데이터 프레임의 '제품' 컬럼에서 '제품_16'인 것만 가져오고 싶을 때
# 비교할 컬럼 = df['제품']
# 비교 조건 = '제품_16'
df.loc[df['제품'] == '제품_16'].head()
Out[5]:
쇼핑몰 | 제품 | 수량 | 판매금액 | 쇼핑몰 유형 | |
---|---|---|---|---|---|
0 | 쿠팡 | 제품_16 | 8 | 1134400 | 쿠팡 |
35 | 쿠팡 | 제품_16 | 7 | 992600 | 쿠팡 |
479 | 스누피동물병원 | 제품_16 | 9 | 1276200 | 동물병원 |
705 | 딩동이네 | 제품_16 | 8 | 1134400 | 유통대리점 |
708 | 딩동이네 | 제품_16 | 5 | 709000 | 유통대리점 |
In [6]:
df['쇼핑몰 유형'].unique()
Out[6]:
array(['쿠팡', '온라인II', '온라인사이트', '동물병원', '할인점II', '유통대리점', '전시회', '할인점'],
dtype=object)
쇼핑몰 유형이 '온라인II', '온라인사이트'인 경우만 인덱싱¶
In [11]:
df.loc[df['쇼핑몰 유형'].isin(['온라인II','온라인사이트'])].head()
Out[11]:
쇼핑몰 | 제품 | 수량 | 판매금액 | 쇼핑몰 유형 | |
---|---|---|---|---|---|
95 | 위메프 | 제품_63 | 3 | 400800 | 온라인II |
96 | 위메프 | 제품_85 | 7 | 586600 | 온라인II |
97 | 위메프 | 제품_95 | 3 | 291900 | 온라인II |
98 | 위메프 | 제품_87 | 5 | 654000 | 온라인II |
99 | 위메프 | 제품_31 | 10 | 684000 | 온라인II |
수량이 5개 이상이고 쇼핑몰 유형은 전시회 인 경우만 인덱싱¶
- 조건이 2개가 들어갈 경우 괄호로 묶어 준 후 비교 연산자를 사용해야 한다.
In [10]:
df.loc[(df['수량'] >=5 ) & (df['쇼핑몰 유형'] == '전시회')].head()
Out[10]:
쇼핑몰 | 제품 | 수량 | 판매금액 | 쇼핑몰 유형 | |
---|---|---|---|---|---|
918 | KPET | 제품_71 | 5 | 143500 | 전시회 |
919 | KPET | 제품_26 | 6 | 478200 | 전시회 |
920 | KPET | 제품_49 | 8 | 358400 | 전시회 |
921 | KPET | 제품_33 | 7 | 1073100 | 전시회 |
923 | KPET | 제품_45 | 6 | 88200 | 전시회 |
'Python > Pandas' 카테고리의 다른 글
[pandas] DaraFrame의 중복 제거 .drop_duplicates (0) | 2021.04.14 |
---|---|
[pandas] 판다스 DataFrame정렬 sort_values() (0) | 2021.04.13 |
[pandas] Series 데이터 정렬하기 sort_values(), .value_counts(), .unique() (0) | 2021.04.12 |
[pandas] groupby를 이용한 조건부 통계 (0) | 2021.04.10 |
[pandas] pivot_table을 이용한 조건별 변수별 통계량 파악 (0) | 2021.04.09 |