๋ฐ์ดํฐ ์ฌ์ด์ธ์ค 100๋ฒ์ ๋ ธํฌ(๊ตฌ์กฐํ ๋ฐ์ดํฐ ์ฒ๋ฆฌํธ) โ Python Part 1 (Q1 to Q20)์ ํด์ค์ ๋๋ค.
ย
๋ฐ์ดํฐ ์ฌ์ด์ธํฐ์คํธ ์์ฌ์ด์ดํฐ ๊นํ๋ธ : https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess
๋ฐ์ดํฐ ์ฌ์ด์ธ์ค 100 ๋ ธํฌ (๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ) URL : https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess/blob/master/docker/work/answer/ans_preprocess_knock_Python.ipynb
โ ์ฐธ๊ณ : ์๋ ๋ฐ์ดํฐ ์ฌ์ด์ธํฐ์คํธ ์์ฌ์ด์ดํฐ(ใใผใฟใตใคใจใณใใฃในใๅไผในใญใซๅฎ็พฉๅงๅก)์์ ๋ง๋ ipynb ํ์ผ์ DeepL ์์ ์ผ๋ณธ์ด์์ ์์ด๋ก ๋ฒ์ญํ ํ์ผ์ ๋๋ค.
โ ์ด ํ์ผ์ ์ ๋ฐ์ดํธํ ์ด์ ๋ ์ด๋ณด์๋ถํฐ ๊ณ ๊ธ ์์ง๋์ด๊น์ง Python์ ์ฌ์ฉํ๊ณ ์ ํ๋ ๋ชจ๋ ์ฌ๋์๊ฒ ์ ์ฉํ ์ด ์ค์ต์ ์ ํํ๊ธฐ ์ํด์์ ๋๋ค.
โ ์ด ๋ฐ์ดํฐ๋ ์ผ๋ณธ์ด๋ก ์์ฑ๋์์ผ๋ฏ๋ก ์ฐ์ตํ ๋ ์ธ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํฌ๊ฒ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฏ๋ก ๊ฑฑ์ ํ์ง ๋ง์ญ์์ค.
ย
์ฒ์์
- ๋จผ์ ๋ค์ ์ ์ ์คํํฉ๋๋ค.
- ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ต๋๋ค(PostgreSQL).
- ์ฌ์ฉํ ๊ฒ์ผ๋ก ์์๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์ ์ ์์ ๊ฐ์ ธ์ต๋๋ค.
- ์ฌ์ฉํ๋ ค๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ install.packages()๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ ํ๊ฒ ์ค์นํฉ๋๋ค.
- ์ด๋ฆ, ์ฃผ์ ๋ฑ์ ๋๋ฏธ ๋ฐ์ดํฐ์ด๋ฉฐ ์ค์ ๋ฐ์ดํฐ๊ฐ ์๋๋๋ค.
ย
import os
import pandas as pd
import numpy as np
from datetime import datetime, date
from dateutil.relativedelta import relativedelta
import math
import psycopg2
from sqlalchemy import create_engine
from sklearn import preprocessing
from sklearn.impute import SimpleImputer
from sklearn.model_selection import train_test_split
from sklearn.model_selection import TimeSeriesSplit
from imblearn.under_sampling import RandomUnderSampler
if 'PG_PORT' in os.environ:
pgconfig = {
'host': 'db',
'port': os.environ['PG_PORT'],
'database': os.environ['PG_DATABASE'],
'user': os.environ['PG_USER'],
'password': os.environ['PG_PASSWORD'],
}
# pd.read_sql์ฉ ์ปค๋ฅํฐ
conn = psycopg2.connect(**pgconfig)
df_customer = pd.read_sql(sql='select * from customer', con=conn)
df_category = pd.read_sql(sql='select * from category', con=conn)
df_product = pd.read_sql(sql='select * from product', con=conn)
df_receipt = pd.read_sql(sql='select * from receipt', con=conn)
df_store = pd.read_sql(sql='select * from store', con=conn)
df_geocode = pd.read_sql(sql='select * from geocode', con=conn)
else:
if not os.path.exists('../data/'):
!git clone https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess
os.chdir('100knocks-preprocess/docker/work/answer')
dtype = {
'customer_id': str,
'gender_cd': str,
'postal_cd': str,
'application_store_cd': str,
'status_cd': str,
'category_major_cd': str,
'category_medium_cd': str,
'category_small_cd': str,
'product_cd': str,
'store_cd': str,
'prefecture_cd': str,
'tel_no': str,
'postal_cd': str,
'street': str
}
df_customer = pd.read_csv("../data/customer.csv", dtype=dtype)
df_category = pd.read_csv("../data/category.csv", dtype=dtype)
df_product = pd.read_csv("../data/product.csv", dtype=dtype)
df_receipt = pd.read_csv("../data/receipt.csv", dtype=dtype)
df_store = pd.read_csv("../data/store.csv", dtype=dtype)
df_geocode = pd.read_csv("../data/geocode.csv", dtype=dtype)
์ฐ์ต๋ฌธ์
P-001: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ์ ์ฒด ํญ๋ชฉ ์ค ์ฒซ 10๊ฑด์ ํ์ํ์ฌ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๋ณด์ ํ๊ณ ์๋์ง ๋ชฉ์์ผ๋ก ํ์ธํ๋ผ.
df_receipt.head(10)
ย | sales_ymd | sales_epoch | store_cd | receipt_no | receipt_sub_no | customer_id | product_cd | quantity | amount |
---|---|---|---|---|---|---|---|---|---|
0 | 20181103 | 1541203200 | S14006 | 112 | 1 | CS006214000001 | P070305012 | 1 | 158 |
1 | 20181118 | 1542499200 | S13008 | 1132 | 2 | CS008415000097 | P070701017 | 1 | 81 |
2 | 20170712 | 1499817600 | S14028 | 1102 | 1 | CS028414000014 | P060101005 | 1 | 170 |
3 | 20190205 | 1549324800 | S14042 | 1132 | 1 | ZZ000000000000 | P050301001 | 1 | 25 |
4 | 20180821 | 1534809600 | S14025 | 1102 | 2 | CS025415000050 | P060102007 | 1 | 90 |
5 | 20190605 | 1559692800 | S13003 | 1112 | 1 | CS003515000195 | P050102002 | 1 | 138 |
6 | 20181205 | 1543968000 | S14024 | 1102 | 2 | CS024514000042 | P080101005 | 1 | 30 |
7 | 20190922 | 1569110400 | S14040 | 1102 | 1 | CS040415000178 | P070501004 | 1 | 128 |
8 | 20170504 | 1493856000 | S13020 | 1112 | 2 | ZZ000000000000 | P071302010 | 1 | 770 |
9 | 20191010 | 1570665600 | S14027 | 1102 | 1 | CS027514000015 | P071101003 | 1 | 680 |
ํด์ค:
df_receipt.head(10) ์ฝ๋๋ df_receipt๋ผ๋ Pandas DataFrame์ ์ฒซ 10๊ฐ์ ํ์ ํ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
Pandas์์ DataFrame์ ์ ์ฌ์ ์ผ๋ก ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์ ์ ์ด์ ๊ฐ์ง 2์ฐจ์ ๋ ์ด๋ธ์ด ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋๋ค. ์ด๋ ์คํ๋ ๋์ํธ๋ SQL์ ํ ์ด๋ธ๊ณผ ์ ์ฌํ๋ค.
Pandas์ .head() ๋ฉ์๋๋ DataFrame์ ์ฒ์ n๊ฐ์ ํ์ ํ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒ์ 5๊ฐ ํ์ด ํ์๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ .head(10)์ DataFrame์ ์ฒ์ 10๊ฐ์ ํ์ ํ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
P-002: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ํ๋งค์ผ์(sales_ymd), ๊ณ ๊ฐ ์์ด๋(customer_id), ์ํ์ฝ๋(product_cd), ํ๋งค๊ธ์ก(amount)์ ์์๋ก ์ด์ ์ง์ ํ์ฌ 10๊ฑด์ฉ ํ์ํ๋ผ.
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']].head(10)
ย | sales_ymd | customer_id | product_cd | amount |
---|---|---|---|---|
0 | 20181103 | CS006214000001 | P070305012 | 158 |
1 | 20181118 | CS008415000097 | P070701017 | 81 |
2 | 20170712 | CS028414000014 | P060101005 | 170 |
3 | 20190205 | ZZ000000000000 | P050301001 | 25 |
4 | 20180821 | CS025415000050 | P060102007 | 90 |
5 | 20190605 | CS003515000195 | P050102002 | 138 |
6 | 20181205 | CS024514000042 | P080101005 | 30 |
7 | 20190922 | CS040415000178 | P070501004 | 128 |
8 | 20170504 | ZZ000000000000 | P071302010 | 770 |
9 | 20191010 | CS027514000015 | P071101003 | 680 |
ํด์ค :
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']].head(10) ์ฝ๋๋ df_receipt๋ผ๋ Pandas DataFrame์ ์ปฌ๋ผ์ ํ์ ์งํฉ์ธ df_receipt์ ์ฒซ 10๊ฐ์ ํ์ ํ์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ ์ฌ์ฉ๋ฉ๋๋ค.
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]๋ผ๋ ์ฝ๋๋ DataFrame df_receipt์์ ์ปฌ๋ผ์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก sales_ymd, customer_id, product_cd, amount๋ผ๋ ์ปฌ๋ผ์ด ์ ํ๋๋ค.
๊ฒฐ๊ณผ DataFrame์๋ ์ด๋ฌํ ์ ํ๋ ์ปฌ๋ผ๋ง ํฌํจ๋๋ค. ๊ทธ๋ฆฌ๊ณ .head(10) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์๋ธ์ DataFrame์ ์ฒ์ 10๊ฐ์ ํ์ ํ์ํ๋ค.
ย
P-003: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ๋งค์ถ์ผ์(sales_ymd), ๊ณ ๊ฐ ID(customer_id), ์ํ์ฝ๋(product_cd), ๋งค์ถ๊ธ์ก(amount) ์์ผ๋ก ์ด์ ์ง์ ํ์ฌ 10๊ฑด์ฉ ํ์ํ๋ค. ๋จ, sales_ymdsales_date๋ก ํญ๋ชฉ๋ช ์ ๋ณ๊ฒฝํ๋ฉด์ ์ถ์ถํ๋ค.
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]. \
rename(columns={'sales_ymd': 'sales_date'}).head(10)
ย | sales_date | customer_id | product_cd | amount |
---|---|---|---|---|
0 | 20181103 | CS006214000001 | P070305012 | 158 |
1 | 20181118 | CS008415000097 | P070701017 | 81 |
2 | 20170712 | CS028414000014 | P060101005 | 170 |
3 | 20190205 | ZZ000000000000 | P050301001 | 25 |
4 | 20180821 | CS025415000050 | P060102007 | 90 |
5 | 20190605 | CS003515000195 | P050102002 | 138 |
6 | 20181205 | CS024514000042 | P080101005 | 30 |
7 | 20190922 | CS040415000178 | P070501004 | 128 |
8 | 20170504 | ZZ000000000000 | P071302010 | 770 |
9 | 20191010 | CS027514000015 | P071101003 | 680 |
ํด์ค :
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']].rename(columns={'sales_ymd': 'sales_date'}).head(10)์ด๋ผ๋ ์ฝ๋๋ df_ receipt๋ผ๋ Pandas DataFrame์์ ์ด์ ํ์ ์งํฉ์ ์ ํํ๊ณ , ์ด ์ค ํ๋์ ์ด๋ฆ์ ๋ฐ๊พธ๊ณ , ๊ฒฐ๊ณผ DataFrame์ ์ฒซ 10๊ฐ์ ํ์ ํ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]๋ผ๋ ์ฝ๋๋ DataFrame df_receipt์์ ์ปฌ๋ผ์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก sales_ymd, customer_id, product_cd, amount๋ผ๋ ์ด๋ฆ์ ์ปฌ๋ผ์ ์ ํํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ .rename() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ sales_ymd ์ปฌ๋ผ์ ์ด๋ฆ์ sales_date๋ก ๋ณ๊ฒฝํฉ๋๋ค. ์ด ๋ฉ์๋๋ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋ ์ปฌ๋ผ์ ๊ฐ์ง ์๋ก์ด DataFrame์ ๋ฐํํฉ๋๋ค. ์ธ์ columns={'sales_ymd': 'sales_date'}๋ ์ด์ ์ปฌ๋ผ ์ด๋ฆ๊ณผ ์๋ก์ด ์ปฌ๋ผ ์ด๋ฆ์ ๋งคํํ ๋์ ๋๋ฆฌ๋ฅผ ์ง์ ํ๋ค.
๋ง์ง๋ง์ผ๋ก .head(10) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐ๊ณผ DataFrame์ ์ฒ์ 10๊ฐ์ ํ์ ํ์ํ๋ค.
ย
P-004: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ํ๋งค์ผ(sales_ymd), ๊ณ ๊ฐ ID(customer_id), ์ํ ์ฝ๋(product_cd), ํ๋งค ๊ธ์ก(amount) ์์ผ๋ก ์ด์ ์ง์ ํ๊ณ , ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์์ค.
- ๊ณ ๊ฐ ID(customer_id)๊ฐ โCS018205000001โ.
# ์ฝ๋ ์์ 1 (query๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ)
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]. \
query('customer_id == "CS018205000001"')
ย | sales_ymd | customer_id | product_cd | amount |
---|---|---|---|---|
36 | 20180911 | CS018205000001 | P071401012 | 2200 |
9843 | 20180414 | CS018205000001 | P060104007 | 600 |
21110 | 20170614 | CS018205000001 | P050206001 | 990 |
27673 | 20170614 | CS018205000001 | P060702015 | 108 |
27840 | 20190216 | CS018205000001 | P071005024 | 102 |
28757 | 20180414 | CS018205000001 | P071101002 | 278 |
39256 | 20190226 | CS018205000001 | P070902035 | 168 |
58121 | 20190924 | CS018205000001 | P060805001 | 495 |
68117 | 20190226 | CS018205000001 | P071401020 | 2200 |
72254 | 20180911 | CS018205000001 | P071401005 | 1100 |
88508 | 20190216 | CS018205000001 | P040101002 | 218 |
91525 | 20190924 | CS018205000001 | P091503001 | 280 |
ํด์ค :
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']].query('customer_id == "CS018205000001"')๋ผ๋ ์ฝ๋๋ df_receipt๋ผ๋ Pandas DataFrame์์ customer_id ์ด์ด ํน์ ๊ฐ(CS0182050001)๊ณผ ์ผ์นํ๋ ํ์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]๋ผ๋ ์ฝ๋๋ DataFrame df_receipt์์ ์ปฌ๋ผ์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก sales_ymd, customer_id, product_cd, amount๋ผ๋ ์ด๋ฆ์ ์ปฌ๋ผ์ ์ ํํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ .query() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ DataFrame์ ํ์ ํํฐ๋งํ๊ณ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์กฐ๊ฑด์ customer_id ์ด์ด "CS018205000001" ๊ฐ๊ณผ ๊ฐ์์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฒซ ๋ฒ์งธ ํ ๋์ ์๋ ๋ฐฑ์ฌ๋์(๋ฐฑ์ฌ๋์)๋ ๊ฐ๋ ์ฑ์ ๋์ด๊ธฐ ์ํด ์ฝ๋๋ฅผ ๋ค์ ํ์ผ๋ก ์ด์ด์ง๋ค๋ ์๋ฏธ์ ๋๋ค.
๊ฒฐ๊ณผ DataFrame์๋ customer_id ์ปฌ๋ผ์ด ์ง์ ๋ ๊ฐ๊ณผ ์ผ์นํ๋ ํ๋ง ํฌํจ๋ฉ๋๋ค.
# ์ฝ๋ ์์ 1 (query๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ)
df = df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]
df[df['customer_id'] == 'CS018205000001']
ย | sales_ymd | customer_id | product_cd | amount |
---|---|---|---|---|
36 | 20180911 | CS018205000001 | P071401012 | 2200 |
9843 | 20180414 | CS018205000001 | P060104007 | 600 |
21110 | 20170614 | CS018205000001 | P050206001 | 990 |
27673 | 20170614 | CS018205000001 | P060702015 | 108 |
27840 | 20190216 | CS018205000001 | P071005024 | 102 |
28757 | 20180414 | CS018205000001 | P071101002 | 278 |
39256 | 20190226 | CS018205000001 | P070902035 | 168 |
58121 | 20190924 | CS018205000001 | P060805001 | 495 |
68117 | 20190226 | CS018205000001 | P071401020 | 2200 |
72254 | 20180911 | CS018205000001 | P071401005 | 1100 |
88508 | 20190216 | CS018205000001 | P040101002 | 218 |
91525 | 20190924 | CS018205000001 | P091503001 | 280 |
ํด์ค:
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']].query('customer_id == "CS018205000001"')๋ผ๋ ์ฝ๋๋ df_receipt๋ผ๋ Pandas DataFrame์์ customer_id ์ด์ด ํน์ ๊ฐ(CS0182050001)๊ณผ ์ผ์นํ๋ ํ์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]๋ผ๋ ์ฝ๋๋ DataFrame df_receipt์์ ์ปฌ๋ผ์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก sales_ymd, customer_id, product_cd, amount๋ผ๋ ์ด๋ฆ์ ์ปฌ๋ผ์ ์ ํํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ .query() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ DataFrame์ ํ์ ํํฐ๋งํ๊ณ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์กฐ๊ฑด์ customer_id ์ด์ด "CS018205000001" ๊ฐ๊ณผ ๊ฐ์์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฒซ ๋ฒ์งธ ํ ๋์ ์๋ ๋ฐฑ์ฌ๋์(๋ฐฑ์ฌ๋์)๋ ๊ฐ๋ ์ฑ์ ๋์ด๊ธฐ ์ํด ์ฝ๋๋ฅผ ๋ค์ ํ์ผ๋ก ์ด์ด์ง๋ค๋ ์๋ฏธ์ ๋๋ค.
๊ฒฐ๊ณผ DataFrame์๋ customer_id ์ปฌ๋ผ์ด ์ง์ ๋ ๊ฐ๊ณผ ์ผ์นํ๋ ํ๋ง ํฌํจ๋ฉ๋๋ค.
P-005: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ํ๋งค์ผ(sales_ymd), ๊ณ ๊ฐ ID(customer_id), ์ํ ์ฝ๋(product_cd), ํ๋งค ๊ธ์ก(amount)์ ์์๋ก ์ด์ ์ง์ ํ๊ณ , ์๋ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ผ.
- ๊ณ ๊ฐ ID(customer_id)๊ฐ โCS018205000001โ
- ๋งค์ถ ๊ธ์ก(amount)์ด 1,000 ์ด์
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']] \
.query('customer_id == "CS018205000001" & amount >= 1000')
ย | sales_ymd | customer_id | product_cd | amount |
---|---|---|---|---|
36 | 20180911 | CS018205000001 | P071401012 | 2200 |
68117 | 20190226 | CS018205000001 | P071401020 | 2200 |
72254 | 20180911 | CS018205000001 | P071401005 | 1100 |
ํด์ค:
์ฝ๋ df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]์ ๋๋ค. \ .query('customer_id == "CS018205000001" & amount >= 1000')๋ df_receipt๋ผ๋ Pandas DataFrame์์ ํ์ ํ์ ์งํฉ์ ์ ํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ฉฐ, ์ฌ๊ธฐ์ customer_id ์ด์ ํน์ ๊ฐ(CS 018205000001)๊ณผ ๊ฐ๊ณ , amount ์ด์ 1000 ์ด์์ด๋ค.
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]๋ผ๋ ์ฝ๋๋ DataFrame df_receipt์์ ์ด์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก sales_ymd, customer_id, product_cd, amount๋ผ๋ ์ด๋ฆ์ ์ปฌ๋ผ์ ์ ํํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ .query() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์กฐ๊ฑด์ ๋ฐ๋ผ DataFrame์ ํ์ ํํฐ๋งํ๊ณ ์์ต๋๋ค. ๊ธฐํธ &๋ ๋ ์กฐ๊ฑด ๊ฐ์ ๋ ผ๋ฆฌ์ AND ์ฐ์ฐ์ ๋ํ๋ด๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์กฐ๊ฑด์ customer_id ์ปฌ๋ผ์ด 'CS018205000001'๊ณผ ๊ฐ์์ผ ํ๋ค๋ ๊ฒ์ด๊ณ , ๋ ๋ฒ์งธ ์กฐ๊ฑด์ amount ์ปฌ๋ผ์ด 1000 ์ด์์ด์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
๊ฒฐ๊ณผ DataFrame์๋ ๋ ์กฐ๊ฑด์ด ๋ชจ๋ ์ถฉ์กฑ๋๋ ํ๋ง ํฌํจ๋ฉ๋๋ค.
P-006: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ํ๋งค์ผ(sales_ymd), ๊ณ ๊ฐ ID(customer_id), ์ํ ์ฝ๋(product_cd), ํ๋งค ์๋(quantity), ํ๋งค ๊ธ์ก(amount) ์์ผ๋ก ์ด์ ์ง์ ํ๊ณ , ๋ค์ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ผ. ์ถ์ถํ๋ผ.
- ๊ณ ๊ฐ ID(customer_id)๊ฐ โCS018205000001โ.
- ํ๋งค๊ธ์ก(amount)์ด 1,000 ์ด์ ๋๋ ํ๋งค์๋(quantity)์ด 5 ์ด์
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'quantity', 'amount']].\
query('customer_id == "CS018205000001" & (amount >= 1000 | quantity >=5)')
ย | sales_ymd | customer_id | product_cd | quantity | amount |
---|---|---|---|---|---|
36 | 20180911 | CS018205000001 | P071401012 | 1 | 2200 |
9843 | 20180414 | CS018205000001 | P060104007 | 6 | 600 |
21110 | 20170614 | CS018205000001 | P050206001 | 5 | 990 |
68117 | 20190226 | CS018205000001 | P071401020 | 1 | 2200 |
72254 | 20180911 | CS018205000001 | P071401005 | 1 | 1100 |
ํด์ค:
์ฝ๋ df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'quantity', 'amount']]. query('customer_id == "CS018205000001" & (amount >= 1000 | quantity >=5)')๋ df_receipt๋ผ๋ Pandas DataFrame์์ ๊ณ ๊ฐ_id ์ด์ด ํน์ ๊ฐ(CS018205000001)์ ๊ฐ๋ ํ์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ํน์ ๊ฐ(CS018205000001)๊ณผ ๊ฐ๊ณ , umount ์ด์ด 1000 ์ด์ ๋๋ quantity ์ด์ด 5 ์ด์์ด๋ค.
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'quantity', 'amount']]๋ผ๋ ์ฝ๋๋ DataFrame df_receipt์์ ์ด์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ฝ๋์ด๋ค. ๊ตฌ์ฒด์ ์ผ๋ก sales_ymd, customer_id, product_cd, quantity, amount๋ผ๋ ์ปฌ๋ผ์ ์ ํํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ .query() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์กฐ๊ฑด์ ๋ฐ๋ผ DataFrame์ ํ์ ํํฐ๋งํ๊ณ ์์ต๋๋ค. ๊ธฐํธ &๋ ๋ ์กฐ๊ฑด ๊ฐ์ ๋ ผ๋ฆฌ์ AND ์ฐ์ฐ์ ๋ํ๋ด๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์กฐ๊ฑด์ customer_id ์ด์ด 'CS018205000001' ๊ฐ๊ณผ ๊ฐ์์ผ ํ๋ค๋ ๊ฒ์ด๊ณ , ๋ ๋ฒ์งธ ์กฐ๊ฑด์ ๊ดํธ๋ก ๋๋ฌ์ธ์ฌ ์๊ณ ๋ ผ๋ฆฌ OR ์ฐ์ฐ์ ๋ํ๋ด๋ | ๊ธฐํธ๋ก ๊ตฌ๋ถ๋ ๋ ๊ฐ์ ํ์ ์กฐ๊ฑด์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ํ์ ์กฐ๊ฑด์ ๊ธ์ก ์ด์ด 1000 ์ด์์ด๊ณ , ๋ ๋ฒ์งธ ํ์ ์กฐ๊ฑด์ quantity ์ด์ด 5 ์ด์์ด๋ค.
๊ฒฐ๊ณผ DataFrame์๋ customer_id๊ฐ ์ง์ ๋ ๊ฐ๊ณผ ๊ฐ๊ณ amount๊ฐ 1000 ์ด์, quantity๊ฐ 5 ์ด์์ธ ํ๋ง ํฌํจ๋๋ค.
P-007: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ํ๋งค์ผ(sales_ymd), ๊ณ ๊ฐ ID(customer_id), ์ํ ์ฝ๋(product_cd), ํ๋งค ๊ธ์ก(amount)์ ์์๋ก ์ด์ ์ง์ ํ๊ณ , ์๋ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ผ.
- ๊ณ ๊ฐ ID(customer_id)๊ฐ โCS018205000001โ
- ๋งค์ถ ๊ธ์ก(amount)์ด 1,000 ์ด์ 2,000 ์ดํ
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']] \
.query('customer_id == "CS018205000001" & 1000 <= amount <= 2000')
ย | sales_ymd | customer_id | product_cd | amount |
---|---|---|---|---|
72254 | 20180911 | CS018205000001 | P071401005 | 1100 |
ํด์ค:
์ฝ๋ df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]์ ๋๋ค. \ .query('customer_id == "CS018205000001" & 1000 <= amount <= 2000')๋ df_receipt๋ผ๋ Pandas DataFrame์์ ํ์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ, ์ฌ๊ธฐ์ customer_id ์ด์ ํน์ ๊ฐ(CS018205000001)๊ณผ ๋์ผํฉ๋๋ค. ๊ฐ(CS018205000001)๊ณผ ๊ฐ๊ณ , amount ์ด์ 1000์์ 2000(inclusive)๊น์ง์ด๋ค.
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]๋ผ๋ ์ฝ๋๋ DataFrame df_receipt์์ ์ด์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก sales_ymd, customer_id, product_cd, amount๋ผ๋ ์ปฌ๋ผ์ ์ ํํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ .query() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์กฐ๊ฑด์ ๋ฐ๋ผ DataFrame์ ํ์ ํํฐ๋งํ๊ณ ์์ต๋๋ค. ๊ธฐํธ &๋ ๋ ์กฐ๊ฑด ๊ฐ์ ๋ ผ๋ฆฌ์ AND ์ฐ์ฐ์ ๋ํ๋ด๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์กฐ๊ฑด์ customer_id ์ด์ด 'CS018205000001' ๊ฐ๊ณผ ๊ฐ์์ผ ํ๋ค๋ ๊ฒ์ด๊ณ , ๋ ๋ฒ์งธ ์กฐ๊ฑด์ ๋น๊ต ์ฐ์ฐ์ <=์ >=๋ฅผ ์ฌ์ฉํ์ฌ amount ์ด์ ๊ฐ ๋ฒ์๋ฅผ ์ง์ ํ๋ ๊ฒ์ด๋ค.
์์ฑ๋ DataFrame์๋ customer_id๊ฐ ์ง์ ๋ ๊ฐ๊ณผ ๊ฐ๊ณ amount๊ฐ 1000์์ 2000 ์ฌ์ด์ธ ํ๋ง ํฌํจ๋ฉ๋๋ค(ํฌ๊ด์ ์ธ ๊ฐ).
P-008: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ํ๋งค์ผ(sales_ymd), ๊ณ ๊ฐ ID(customer_id), ์ํ ์ฝ๋(product_cd), ํ๋งค ๊ธ์ก(amount)์ ์์๋ก ์ด์ ์ง์ ํ๊ณ , ์๋ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ผ.
- ๊ณ ๊ฐ ID(customer_id)๊ฐ โCS018205000001โ
- ์ํ์ฝ๋(product_cd)๊ฐ โP071401019โ ์ด์ธ
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']] \
.query('customer_id == "CS018205000001" & product_cd != "P071401019"')
ย | sales_ymd | customer_id | product_cd | amount |
---|---|---|---|---|
36 | 20180911 | CS018205000001 | P071401012 | 2200 |
9843 | 20180414 | CS018205000001 | P060104007 | 600 |
21110 | 20170614 | CS018205000001 | P050206001 | 990 |
27673 | 20170614 | CS018205000001 | P060702015 | 108 |
27840 | 20190216 | CS018205000001 | P071005024 | 102 |
28757 | 20180414 | CS018205000001 | P071101002 | 278 |
39256 | 20190226 | CS018205000001 | P070902035 | 168 |
58121 | 20190924 | CS018205000001 | P060805001 | 495 |
68117 | 20190226 | CS018205000001 | P071401020 | 2200 |
72254 | 20180911 | CS018205000001 | P071401005 | 1100 |
88508 | 20190216 | CS018205000001 | P040101002 | 218 |
91525 | 20190924 | CS018205000001 | P091503001 | 280 |
ํด์ค:
์ฝ๋ df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]์ ๋๋ค. \ df_receipt['customer_id == "CS018205000001" & product_cd ! = "P071401019"]๋ Pandas DataFrame์ df_receipt์์ ๊ณ ๊ฐ_id ์ด์ด ํน์ ๊ฐ(CS018205000001)๊ณผ ๊ฐ๊ณ , product_cd ์ด์ด ํน์ ๊ฐ(P0714019)๊ณผ ๊ฐ์ง ์์ ํ์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. )์ ๋์ผํ์ง ์๋ค.
์ฝ๋ df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']]๋ DataFrame df_receipt์์ ์ด์ ํ์ ์งํฉ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉํ๋ค. ๊ตฌ์ฒด์ ์ผ๋ก sales_ymd, customer_id, product_cd, amount๋ผ๋ ์ด๋ฆ์ ์ปฌ๋ผ์ ์ ํํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ .query() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์กฐ๊ฑด์ ๋ฐ๋ผ DataFrame์ ํ์ ํํฐ๋งํ๊ณ ์์ต๋๋ค. ๊ธฐํธ &๋ ๋ ์กฐ๊ฑด ๊ฐ์ ๋ ผ๋ฆฌ์ AND ์ฐ์ฐ์ ๋ํ๋ด๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์กฐ๊ฑด์ customer_id ์ด์ด "CS018205000001" ๊ฐ๊ณผ ๊ฐ์์ผ ํ๋ค๋ ๊ฒ์ด๊ณ , ๋ ๋ฒ์งธ ์กฐ๊ฑด์ product_cd ์ด์ด "P071401019" ๊ฐ๊ณผ ๊ฐ์ง ์์์ผ ํ๋ค๋ ๊ฒ์ด๋ฉฐ, ์ด๋ ! = ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์คํ๋ฉ๋๋ค.
๊ฒฐ๊ณผ DataFrame์๋ customer_id๊ฐ ์ง์ ๋ ๊ฐ๊ณผ ๊ฐ๊ณ product_cd๊ฐ ์ง์ ๋ ๊ฐ๊ณผ ๊ฐ์ง ์์ ํ๋ง ํฌํจ๋๋ค.
P-009: ๋ค์ ์ฒ๋ฆฌ์์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊พธ์ง ์๊ณ OR์ AND๋ก ๋ค์ ์์ฑํ์์ค.
df_store.query('not(prefecture_cd == "13" | floor_area > 900)')
df_store.query('prefecture_cd != "13" & floor_area <= 900')
ย | store_cd | store_name | prefecture_cd | prefecture | address | address_kana | tel_no | longitude | latitude | floor_area |
---|---|---|---|---|---|---|---|---|---|---|
18 | S14046 | ๅๅฑฑ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบๅๅฑฑ็ฐไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใญใฟใคใใฟใคใใใงใฆใก | 045-123-4049 | 139.5916 | 35.56189 | 831.0 |
20 | S14011 | ๆฅๅๆฌ็บๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บๅไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใใจใทใใณใใงใฆใจใณใใงใฆใก | 045-123-4033 | 139.6316 | 35.54655 | 890.0 |
38 | S12013 | ็ฟๅฟ้ๅบ | 12 | ๅ่็ | ๅ่็็ฟๅฟ้ๅธ่ๅไธไธ็ฎ | ใใใฑใณใใฉใทใใทใทใใพใใคใใใงใฆใก | 047-123-4002 | 140.0220 | 35.66122 | 808.0 |
ํด์ค :ย
df_store.query('prefecture_cd ! = "13" & floor_area <= 900')๋ผ๋ ์ฝ๋๋ df_store๋ผ๋ Pandas DataFrame์์ prefecture_cd ์ด์ด ํน์ ๊ฐ(13)๊ณผ ๊ฐ์ง ์๊ณ , floor_area ์ด์ด ํน์ ๊ฐ(900) ์ดํ์ธ ํ์ ํํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ ์ฌ์ฉ๋๋ค.
.query() ๋ฉ์๋๋ ๋ถ์ธ ์์ ๊ธฐ๋ฐ์ผ๋ก DataFrame์ ํ์ ํํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ถ์ธ ํํ์์ 'prefecture_cd ! = "13" & floor_area <= 900' ์ ๋๋ค.
! = ์ฐ์ฐ์๋ prefecture_cd ์ด์ ๊ฐ ๊ฐ์ด '13'๊ณผ ๊ฐ์ง ์์์ง ํ์ธํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ฐ์ฐ์ &๋ ์ด ์กฐ๊ฑด๊ณผ floor_area ์ด์ ๊ฐ์ด 900 ์ดํ์ธ์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋ ๋ฒ์งธ ์กฐ๊ฑด ์ฌ์ด์ ๋ ผ๋ฆฌ์ AND ์ฐ์ฐ์ ๋ํ๋ด๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
๊ฒฐ๊ณผ DataFrame์๋ ๋ ์กฐ๊ฑด์ด ๋ชจ๋ True์ธ ํ๋ง ํฌํจ๋๋ค.
P-010: ๋งค์ฅ ๋ฐ์ดํฐ(df_store)์์ ๋งค์ฅ ์ฝ๋(store_cd)๊ฐ โS14โณ๋ก ์์ํ๋ ํญ๋ชฉ๋ง ์ ์ฒด ์ถ์ถํ์ฌ 10๊ฐ๋ฅผ ํ์ํ๋ผ.
df_store.query("store_cd.str.startswith('S14')", engine='python').head(10)
ย | store_cd | store_name | prefecture_cd | prefecture | address | address_kana | tel_no | longitude | latitude | floor_area |
---|---|---|---|---|---|---|---|---|---|---|
2 | S14010 | ่ๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบ่ๅไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใญใฏใใคใใใงใฆใก | 045-123-4032 | 139.6326 | 35.50049 | 1732.0 |
3 | S14033 | ้ฟไน ๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ้ฟไน ๅ่ฅฟไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใขใฏใฏใใทใคใใใงใฆใก | 045-123-4043 | 139.4961 | 35.45918 | 1495.0 |
4 | S14036 | ็ธๆจกๅไธญๅคฎๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็็ธๆจกๅๅธไธญๅคฎไบไธ็ฎ | ใซใใฌใฏใฑใณใตใฌใใใฉใทใใฅใฆใชใฆใใใงใฆใก | 042-123-4045 | 139.3716 | 35.57327 | 1679.0 |
7 | S14040 | ้ทๆดฅ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ทๅบ้ทๆดฅ็ฐใฟใชใฟๅฐไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใใชใฏใใฌใใฟใใใใใคใดใใงใฆใก | 045-123-4046 | 139.4994 | 35.52398 | 1548.0 |
9 | S14050 | ้ฟไน ๅ่ฅฟๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ้ฟไน ๅ่ฅฟไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใขใฏใฏใใทใคใใใงใฆใก | 045-123-4053 | 139.4961 | 35.45918 | 1830.0 |
12 | S14028 | ไบใๆฉๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบไบใๆฉ็บ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใใฟใใใทใใงใฆ | 045-123-4042 | 139.4963 | 35.46304 | 1574.0 |
16 | S14012 | ๆฌ็งๅ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธไธญๅบๆฌ็งๅ็ฐ | ใซใใฌใฏใฑใณใจใณใใใทใใซใฏใใณใขใฏใฏใ | 045-123-4034 | 139.6582 | 35.42156 | 1341.0 |
18 | S14046 | ๅๅฑฑ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบๅๅฑฑ็ฐไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใญใฟใคใใฟใคใใใงใฆใก | 045-123-4049 | 139.5916 | 35.56189 | 831.0 |
19 | S14022 | ้ๅญๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็้ๅญๅธ้ๅญไธไธ็ฎ | ใซใใฌใฏใฑใณใบใทใทใบใทใคใใใงใฆใก | 046-123-4036 | 139.5789 | 35.29642 | 1838.0 |
20 | S14011 | ๆฅๅๆฌ็บๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บๅไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใใจใทใใณใใงใฆใจใณใใงใฆใก | 045-123-4033 | 139.6316 | 35.54655 | 890.0 |
ํด์ค:
df_store.query("store_cd.str.startswith('S14')", engine='python').head(10)๋ผ๋ ์ฝ๋๋ df_store๋ผ๋ Pandas DataFrame์์ store_cd ์ด์ด ํน์ ๋ฌธ์์ด (S14) ๋ก ์์ํ๋ ํ์ ํํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
.query() ๋ฉ์๋๋ DataFrame์ ํ์ ๋ถ์ธ ํํ์์ ๋ฐ๋ผ ํํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ถ์ธ ํํ์์ 'store_cd.str.startswith('S14')'๊ฐ ๋๋ค. ์ด ํํ์์ engine ํ๋ผ๋ฏธํฐ๊ฐ 'python'์ผ๋ก ์ค์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ํ์ด์ฌ ๊ตฌ๋ฌธ์ผ๋ก ์์ฑ๋์ด ์๋ค. ์ด ์์ store_cd ์ปฌ๋ผ์ด 'S14' ๋ฌธ์์ด๋ก ์์ํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค.
str.startswith() ๋ฉ์๋๋ Python์ ๋ฌธ์์ด ๋ฉ์๋๋ก, ๋ฌธ์์ด์ด ์ง์ ๋ ์ ๋์ด๋ก ์์ํ๋ฉด True๋ฅผ ๋ฐํํ๋ ๋ฉ์๋์ด๋ค. ์ด ๊ฒฝ์ฐ str.startswith('S14') ๋ฉ์๋๊ฐ store_cd ์ปฌ๋ผ์ ๊ฐ ์์์ ์ ์ฉ๋๋ค.
๊ฒฐ๊ณผ DataFrame์๋ store_cd ์ปฌ๋ผ์ ์์์ด 'S14' ๋ฌธ์์ด์ธ ํ๋ง ํฌํจ๋๋ค.
.head(10) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐ๊ณผ DataFrame์ ์ฒ์ 10๊ฐ์ ํ๋ง ๋ฐํํฉ๋๋ค.
ย
P-011: ๊ณ ๊ฐ ๋ฐ์ดํฐ(df_customer)์์ ๊ณ ๊ฐ ID(customer_id)์ ๋์๋ฆฌ๊ฐ 1์ธ ํญ๋ชฉ๋ง ์ ์ฒด ์ถ์ถํ์ฌ 10๊ฑด์ ํ์ํ๋ผ.
df_customer.query("customer_id.str.endswith('1')", engine='python').head(10)
ย | customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | CS037613000071 | ๅ ญ่ง ้ ๅฝฆ | 9 | ไธๆ | 1952-04-01 | 66 | 136-0076 | ๆฑไบฌ้ฝๆฑๆฑๅบๅ็ ********** | S13037 | 20150414 | 0-00000000-0 |
3 | CS028811000001 | ๅ ไบ ใใใ | 1 | ๅฅณๆง | 1933-03-27 | 86 | 245-0016 | ็ฅๅฅๅท็ๆจชๆตๅธๆณๅบๅๆณ็บ********** | S14028 | 20160115 | 0-00000000-0 |
14 | CS040412000191 | ๅทไบ ้ๆต | 1 | ๅฅณๆง | 1977-01-05 | 42 | 226-0021 | ็ฅๅฅๅท็ๆจชๆตๅธ็ทๅบๅๅ ซๆ็บ********** | S14040 | 20151101 | 1-20091025-4 |
31 | CS028314000011 | ๅฐ่ ใใใ | 1 | ๅฅณๆง | 1983-11-26 | 35 | 246-0038 | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบๅฎฎๆฒข********** | S14028 | 20151123 | 1-20080426-5 |
56 | CS039212000051 | ่คๅณถ ๆตๆขจ้ฆ | 1 | ๅฅณๆง | 1997-02-03 | 22 | 166-0001 | ๆฑไบฌ้ฝๆไธฆๅบ้ฟไฝ่ฐทๅ********** | S13039 | 20171121 | 1-20100215-4 |
59 | CS015412000111 | ๆพๅฑ ๅฅๆ | 1 | ๅฅณๆง | 1972-10-04 | 46 | 136-0071 | ๆฑไบฌ้ฝๆฑๆฑๅบไบๆธ********** | S13015 | 20150629 | 0-00000000-0 |
63 | CS004702000041 | ้ๅณถ ๆด | 0 | ็ทๆง | 1943-08-24 | 75 | 176-0022 | ๆฑไบฌ้ฝ็ทด้ฆฌๅบๅๅฑฑ********** | S13004 | 20170218 | 0-00000000-0 |
74 | CS041515000001 | ๆ ็ฐ ๅๅค | 1 | ๅฅณๆง | 1967-01-02 | 52 | 206-0001 | ๆฑไบฌ้ฝๅคๆฉๅธๅ็ฐ********** | S13041 | 20160422 | E-20100803-F |
85 | CS029313000221 | ๅๆก ใฒใใ | 1 | ๅฅณๆง | 1987-06-19 | 31 | 279-0011 | ๅ่็ๆตฆๅฎๅธ็พๆต********** | S12029 | 20180810 | 0-00000000-0 |
102 | CS034312000071 | ๆๆ ๅฅๅคฎ | 1 | ๅฅณๆง | 1980-09-20 | 38 | 213-0026 | ็ฅๅฅๅท็ๅทๅดๅธ้ซๆดฅๅบไน ๆซ********** | S14034 | 20160106 | 0-00000000-0 |
ํด์ค:
์ด ์ฝ๋๋ df_customer๋ผ๋ Pandas DataFrame์์ ๋ฐ์ดํฐ์ ํ์ ์งํฉ์ ์ ํํ๋ค. ์ด ์๋ธ์ ์ query() ๋ฉ์๋์์ ์ง์ ํ ์กฐ๊ฑด์ ๋ฐ๋ผ ํํฐ๋ง๋ฉ๋๋ค.
์กฐ๊ฑด์ query() ๋ฉ์๋์ ์ธ์๋ก ์ ๋ฌ๋๋ ๋ฌธ์์ด 'customer_id.str.endswith('1')'์ ์ํด ์ ์๋๋ค. ์ด ์กฐ๊ฑด์ df_customer DataFrame์ ํ ์ค customer_id ์ปฌ๋ผ์ ๋์ด '1'์ธ ํ๋ง ํฌํจํ๋๋ก ํํฐ๋งํ๋ค.
engine='python' ํ๋ผ๋ฏธํฐ๋ ์ ํ ์ฌํญ์ผ๋ก, ์กฐ๊ฑด ํ๊ฐ์ Python ์์ง์ ์ฌ์ฉํ๋๋ก ์ง์ ํฉ๋๋ค. query() ๋ฉ์๋์ ๊ธฐ๋ณธ ์์ง(pandas.evaluate)์ด ๋ชจ๋ ๋ฌธ์์ด ์ฐ์ฐ์ ์ง์ํ๋ ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด์ ๋ฌธ์์ด ์ฐ์ฐ์ด ํฌํจ๋ ๊ฒฝ์ฐ ์ด ํ๋ผ๋ฏธํฐ๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค. ํฌํจ๋๋ ๊ฒฝ์ฐ ์ด ์ง์ ์ด ํ์ํ๋ค.
๋ง์ง๋ง์ผ๋ก head(10) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํํฐ๋ง๋ DataFrame์ ์ฒ์ 10์ค์ ๋ฐํํ๋ค. ์ด๋ ์ ํ ์ฌํญ์ด๋ฉฐ, ์ฌ๊ธฐ์๋ ์ถ๋ ฅ์ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ํฌ๊ธฐ๋ก ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
P-012: ์ ํฌ ๋ฐ์ดํฐ(df_store)์์ ์ฃผ์(address)์ โ์์ฝํ๋ง์โ๊ฐ ํฌํจ๋ ํญ๋ชฉ๋ง ๋ชจ๋ ํ์ํ๋ค.
df_store.query("address.str.contains('ๆจชๆตๅธ')", engine='python')
ย | store_cd | store_name | prefecture_cd | prefecture | address | address_kana | tel_no | longitude | latitude | floor_area |
---|---|---|---|---|---|---|---|---|---|---|
2 | S14010 | ่ๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบ่ๅไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใญใฏใใคใใใงใฆใก | 045-123-4032 | 139.6326 | 35.50049 | 1732.0 |
3 | S14033 | ้ฟไน ๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ้ฟไน ๅ่ฅฟไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใขใฏใฏใใทใคใใใงใฆใก | 045-123-4043 | 139.4961 | 35.45918 | 1495.0 |
7 | S14040 | ้ทๆดฅ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ทๅบ้ทๆดฅ็ฐใฟใชใฟๅฐไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใใชใฏใใฌใใฟใใใใใคใดใใงใฆใก | 045-123-4046 | 139.4994 | 35.52398 | 1548.0 |
9 | S14050 | ้ฟไน ๅ่ฅฟๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ้ฟไน ๅ่ฅฟไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใขใฏใฏใใทใคใใใงใฆใก | 045-123-4053 | 139.4961 | 35.45918 | 1830.0 |
12 | S14028 | ไบใๆฉๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบไบใๆฉ็บ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใใฟใใใทใใงใฆ | 045-123-4042 | 139.4963 | 35.46304 | 1574.0 |
16 | S14012 | ๆฌ็งๅ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธไธญๅบๆฌ็งๅ็ฐ | ใซใใฌใฏใฑใณใจใณใใใทใใซใฏใใณใขใฏใฏใ | 045-123-4034 | 139.6582 | 35.42156 | 1341.0 |
18 | S14046 | ๅๅฑฑ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบๅๅฑฑ็ฐไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใญใฟใคใใฟใคใใใงใฆใก | 045-123-4049 | 139.5916 | 35.56189 | 831.0 |
20 | S14011 | ๆฅๅๆฌ็บๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บๅไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใใจใทใใณใใงใฆใจใณใใงใฆใก | 045-123-4033 | 139.6316 | 35.54655 | 890.0 |
26 | S14048 | ไธญๅทไธญๅคฎๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบไธญๅทไธญๅคฎไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใใซใฌใฏใใฅใฆใชใฆใใใงใฆใก | 045-123-4051 | 139.5758 | 35.54912 | 1657.0 |
40 | S14042 | ๆฐๅฑฑไธๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธไธญๅบๆฐๅฑฑไธไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใซใฏใทใณใคใใทใฟใใใงใฆใก | 045-123-4047 | 139.6593 | 35.43894 | 1044.0 |
52 | S14006 | ่ใ่ฐทๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบ่ใ่ฐท | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใฏใบใฌใค | 045-123-4031 | 139.5633 | 35.53573 | 1886.0 |
ํด์ค:
๊ตฌ์ฒด์ ์ผ๋ก query()์ ์ธ์๋ก ์ ๋ฌ๋๋ "address.str.contains('์์ฝํ๋ง์')๋ผ๋ ๋ฌธ์์ด๋ก ์กฐ๊ฑด์ ์ ์ํ๋ค. ์ด ๋ฌธ์์ด์ df_store์ address ์ปฌ๋ผ์ '์์ฝํ๋ง์'๋ผ๋ ๋ถ๋ถ ๋ฌธ์์ด์ด ํฌํจ๋์ด ์๋์ง ํ์ธํ๋ ๋ถ์ธ ์์ด๋ค.
str.contains() ๋ฉ์๋๋ Pandas์ ๋ฌธ์์ด ๋ฉ์๋๋ก, ์ฃผ์ด์ง ๋ฌธ์์ด์ ๊ฐ ์์๊ฐ ์ง์ ๋ ๋ถ๋ถ ๋ฌธ์์ด์ ํฌํจํ๋์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ๋ถ์ธ ๋ฐฐ์ด์ ๋ฐํํ๋ค. ์ด๋ฒ์๋ df_store์ address ์ปฌ๋ผ์ ์ ์ฉํด ๋ณด๊ฒ ์ต๋๋ค.
engine='python' ์ธ์๋ ๊ธฐ๋ณธ numexpr ์์ง์ด ์๋ ํ์ด์ฌ์ ๋ด์ฅ๋ eval() ํจ์๋ก ํํฐ๋ง ์ฒ๋ฆฌ๋ฅผ ์ํํ๋๋ก ์ง์ ํ๋ค. ์ด๋ str.contains()์ ๊ฐ์ด numexpr ์์ง์์ ์ง์ํ์ง ์๋ ํน์ ์ ํ์ ๋ฌธ์์ด ์ฐ์ฐ์ ์ฟผ๋ฆฌ ์์์ ์ฌ์ฉํ ๋ ํ์ํ๋ค.
P-013: ๊ณ ๊ฐ ๋ฐ์ดํฐ(df_customer)์์ ์ํ์ฝ๋(status_cd)๊ฐ ์ํ๋ฒณ A~F๋ก ์์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ถ์ถํ์ฌ 10๊ฑด์ ํ์ํ๋ผ.
df_customer.query("status_cd.str.contains(r'^[A-F]')",
engine='python').head(10)
ย | customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd |
---|---|---|---|---|---|---|---|---|---|---|---|
2 | CS031415000172 | ๅฎๅค็ฐ ่ฒด็พๅญ | 1 | ๅฅณๆง | 1976-10-04 | 42 | 151-0053 | ๆฑไบฌ้ฝๆธ่ฐทๅบไปฃใ ๆจ********** | S13031 | 20150529 | D-20100325-C |
6 | CS015414000103 | ๅฅฅ้ ้ฝๅญ | 1 | ๅฅณๆง | 1977-08-09 | 41 | 136-0073 | ๆฑไบฌ้ฝๆฑๆฑๅบๅ็ ********** | S13015 | 20150722 | B-20100609-B |
12 | CS011215000048 | ่ฆ็ฐ ๆฒ่ถ | 1 | ๅฅณๆง | 1992-02-01 | 27 | 223-0062 | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บ********** | S14011 | 20150228 | C-20100421-9 |
15 | CS029415000023 | ๆข ็ฐ ้็ฉ | 1 | ๅฅณๆง | 1976-01-17 | 43 | 279-0043 | ๅ่็ๆตฆๅฎๅธๅฏๅฃซ่ฆ********** | S12029 | 20150610 | D-20100918-E |
21 | CS035415000029 | ๅฏบๆฒข ็ๅธ | 9 | ไธๆ | 1977-09-27 | 41 | 158-0096 | ๆฑไบฌ้ฝไธ็ฐ่ฐทๅบ็ๅทๅฐ********** | S13035 | 20141220 | F-20101029-F |
32 | CS031415000106 | ๅฎ้ ็ฑ็พๅญ | 1 | ๅฅณๆง | 1970-02-26 | 49 | 151-0053 | ๆฑไบฌ้ฝๆธ่ฐทๅบไปฃใ ๆจ********** | S13031 | 20150201 | F-20100511-E |
33 | CS029215000025 | ็ณๅ ็พๅธ | 1 | ๅฅณๆง | 1993-09-28 | 25 | 279-0022 | ๅ่็ๆตฆๅฎๅธไปๅท********** | S12029 | 20150708 | B-20100820-C |
40 | CS033605000005 | ็ช่ก ้ๅคช | 0 | ็ทๆง | 1955-12-05 | 63 | 246-0031 | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ็ฌ่ฐท********** | S14033 | 20150425 | F-20100917-E |
44 | CS033415000229 | ๆฟๅฃ ่ใ ็พ | 1 | ๅฅณๆง | 1977-11-07 | 41 | 246-0021 | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบไบใๆฉ็บ********** | S14033 | 20150712 | F-20100326-E |
53 | CS008415000145 | ้ป่ฐท ้บป็ท | 1 | ๅฅณๆง | 1977-06-27 | 41 | 157-0067 | ๆฑไบฌ้ฝไธ็ฐ่ฐทๅบๅๅค่ฆ********** | S13008 | 20150829 | F-20100622-F |
ํด์ค:
df_customer๋ DataFrame ๊ฐ์ฒด์ด๋ค.
.query()๋ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ํ์ ํํฐ๋งํ๊ธฐ ์ํด Pandas๊ฐ ์ ๊ณตํ๋ ๋ฉ์๋์ด๋ค. ์กฐ๊ฑด์ ๋ฌธ์์ด ์ธ์๋ก ์ง์ ๋ฉ๋๋ค.
์ด ๊ฒฝ์ฐ ์กฐ๊ฑด์ 'status_cd.str.contains(r'^[A-F]')์ด๋ค. ์ด๋ str.contains() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ DataFrame์ status_cd ์ปฌ๋ผ์ A๋ถํฐ F๊น์ง ๋ฌธ์๋ก ์์ํ๋ ๋ฌธ์์ด์ด ํฌํจ๋์ด ์๋์ง(ํฌ๊ด์ ์ผ๋ก) ๊ฒ์ฌํ๋ ๊ฒ์ด๋ค. ์ ๊ท ํํ์ ํจํด '^[A-F]' ์์ r์ ์์ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ๋ํ๋ด๋ฉฐ, ๋ฐฑ์ฌ๋์ ๋ฌธ์(\)๊ฐ ์ด์ค์ผ์ดํ ๋ฌธ์๊ฐ ์๋ ๋ฌธ์ ๊ทธ๋๋ก ํด์๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
engine='python' ์ธ์๋ Pandas๊ฐ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ์์ง์ด ์๋ Python์ ๋ด์ฅ ์ ๊ท ํํ์ ์์ง์ ์ฌ์ฉํ์ฌ ํํฐ๋ง์ ์ํํ๋๋ก ์ง์ ํ๋ค. ์ด๋ ๊ธฐ๋ณธ ์์ง์ด ํน์ ์ ๊ท ํํ์ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์๊ฑฐ๋ ๋๋ฌด ๋๋ฆด ๋ ์ ์ฉํ๋ค.
.head(10) ๋ฉ์๋๋ ํํฐ๋ง๋ DataFrame์ ์ฒ์ 10์ค๋ง ๋ฐํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
์ฆ, ์ด ์ฝ๋๋ ์ ์ฒด์ ์ผ๋ก df_customer DataFrame์ ํํฐ๋งํ์ฌ status_cd ์ด์ด A๋ถํฐ F๊น์ง์ ๋ฌธ์๋ก ์์ํ๋ ํ๋ง ํฌํจํ๋๋ก ํํฐ๋งํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ DataFrame์ ์ฒ์ 10๊ฐ์ ํ์ ๋ฐํํ๋ค.
ย
ย
P-014: ๊ณ ๊ฐ ๋ฐ์ดํฐ(df_customer)์์ ์ํ์ฝ๋(status_cd)์ ๋์๋ฆฌ๊ฐ ์ซ์ 1~9๋ก ๋๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ถ์ถํ์ฌ 10๊ฑด์ ํ์ํ๋ผ.
# regex ์ต์
์ ๋ถ์ผ ์๋ ์๋ค(False๋ก ์ค์ ํ๋ฉด ์ ๊ทํํ์์ด ์๋ ๊ทธ๋๋ก์ ๋ฌธ์์ด๋ก ์ฒ๋ฆฌ๋จ).
df_customer.query("status_cd.str.contains(r'[1-9]$', regex=True)",
engine='python').head(10)
ย | customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd |
---|---|---|---|---|---|---|---|---|---|---|---|
4 | CS001215000145 | ็ฐๅด ็พ็ด | 1 | ๅฅณๆง | 1995-03-29 | 24 | 144-0055 | ๆฑไบฌ้ฝๅคง็ฐๅบไปฒๅ ญ้ท********** | S13001 | 20170605 | 6-20090929-2 |
9 | CS033513000180 | ๅฎๆ ้ฅ | 1 | ๅฅณๆง | 1962-07-11 | 56 | 241-0823 | ็ฅๅฅๅท็ๆจชๆตๅธๆญๅบๅ้จ็บ********** | S14033 | 20150728 | 6-20080506-5 |
12 | CS011215000048 | ่ฆ็ฐ ๆฒ่ถ | 1 | ๅฅณๆง | 1992-02-01 | 27 | 223-0062 | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บ********** | S14011 | 20150228 | C-20100421-9 |
14 | CS040412000191 | ๅทไบ ้ๆต | 1 | ๅฅณๆง | 1977-01-05 | 42 | 226-0021 | ็ฅๅฅๅท็ๆจชๆตๅธ็ทๅบๅๅ ซๆ็บ********** | S14040 | 20151101 | 1-20091025-4 |
16 | CS009315000023 | ็ๅท ๆไธ | 1 | ๅฅณๆง | 1980-04-15 | 38 | 154-0012 | ๆฑไบฌ้ฝไธ็ฐ่ฐทๅบ้งๆฒข********** | S13009 | 20150319 | 5-20080322-1 |
22 | CS015315000033 | ็ฆๅฃซ ็ๅฅๅญ | 1 | ๅฅณๆง | 1983-03-17 | 36 | 135-0043 | ๆฑไบฌ้ฝๆฑๆฑๅบๅกฉๆต********** | S13015 | 20141024 | 4-20080219-3 |
23 | CS023513000066 | ็ฅๆธ ใใ | 1 | ๅฅณๆง | 1961-12-17 | 57 | 210-0005 | ็ฅๅฅๅท็ๅทๅดๅธๅทๅดๅบๆฑ็ฐ็บ********** | S14023 | 20150915 | 5-20100524-9 |
24 | CS035513000134 | ๅธๅท ็พๅธ | 1 | ๅฅณๆง | 1960-03-27 | 59 | 156-0053 | ๆฑไบฌ้ฝไธ็ฐ่ฐทๅบๆก********** | S13035 | 20150227 | 8-20100711-9 |
27 | CS001515000263 | ้ซๆพ ๅค็ฉบ | 1 | ๅฅณๆง | 1962-11-09 | 56 | 144-0051 | ๆฑไบฌ้ฝๅคง็ฐๅบ่ฅฟ่ฒ็ฐ********** | S13001 | 20160812 | 1-20100804-1 |
28 | CS040314000027 | ้ถด็ฐ ใใฟใพใ | 9 | ไธๆ | 1986-03-26 | 33 | 226-0027 | ็ฅๅฅๅท็ๆจชๆตๅธ็ทๅบ้ทๆดฅ็ฐ********** | S14040 | 20150122 | 2-20080426-4 |
ํด์ค:
df_customer๋ DataFrame ๊ฐ์ฒด์ด๋ค.
.query()๋ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ํ์ ํํฐ๋งํ๊ธฐ ์ํด Pandas๊ฐ ์ ๊ณตํ๋ ๋ฉ์๋์ด๋ค. ์กฐ๊ฑด์ ๋ฌธ์์ด ์ธ์๋ก ์ง์ ๋ฉ๋๋ค.
์ด ๊ฒฝ์ฐ ์กฐ๊ฑด์ 'status_cd.str.contains(r'[1-9]$', regex=True)๊ฐ ๋๋ค. ์ด๋ str.contains() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ DataFrame์ status_cd ์ปฌ๋ผ์ 1~9(ํฌํจ)๋ก ๋๋๋ ๋ฌธ์์ด์ด ํฌํจ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ๋ฌธ์ $๋ ๋ฌธ์์ด์ ๋์ ๋ํ๋ด๋ฉฐ, regex=True ์ธ์๋ ํจํด์ด ์ ๊ท ํํ์์ผ๋ก ํด์๋ ๊ฒ์์ ๋ํ๋ธ๋ค.
engine='python' ์ธ์๋ Pandas๊ฐ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ์์ง์ด ์๋ Python์ ๋ด์ฅ ์ ๊ท ํํ์ ์์ง์ ์ฌ์ฉํ์ฌ ํํฐ๋ง์ ์ํํ๋๋ก ์ง์ ํ๋ค. ์ด๋ ๊ธฐ๋ณธ ์์ง์ด ํน์ ์ ๊ท ํํ์ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์๊ฑฐ๋ ๋๋ฌด ๋๋ฆฐ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค.
.head(10) ๋ฉ์๋๋ ํํฐ๋ง๋ DataFrame์ ์ฒ์ 10์ค๋ง ๋ฐํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ฆ, ์ ์ฒด์ ์ผ๋ก ์ด ์ฝ๋๋ status_cd ์ด์ด 1์์ 9๊น์ง์ ์ซ์๋ก ๋๋๋ ํ๋ง ํฌํจํ๋๋ก df_customer DataFrame์ ํํฐ๋งํ๊ณ ๊ทธ ๊ฒฐ๊ณผ DataFrame์ ์ฒ์ 10๊ฐ์ ํ์ ๋ฐํํ๋ค.
ย
P-015: ๊ณ ๊ฐ ๋ฐ์ดํฐ(df_customer)์์ ์ํ์ฝ๋(status_cd)์ ์์์ด ์ํ๋ฒณ A~F๋ก ์์ํ๊ณ ๋์ด ์ซ์ 1~9๋ก ๋๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ถ์ถํ์ฌ 10๊ฑด์ ํ์ํ๋ผ.
df_customer.query("status_cd.str.contains(r'^[A-F].*[1-9]$')",
engine='python').head(10)
ย | customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd |
---|---|---|---|---|---|---|---|---|---|---|---|
12 | CS011215000048 | ่ฆ็ฐ ๆฒ่ถ | 1 | ๅฅณๆง | 1992-02-01 | 27 | 223-0062 | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บ********** | S14011 | 20150228 | C-20100421-9 |
68 | CS022513000105 | ๅณถๆ ่ฒด็พๅญ | 1 | ๅฅณๆง | 1962-03-12 | 57 | 249-0002 | ็ฅๅฅๅท็้ๅญๅธๅฑฑใฎๆ น********** | S14022 | 20150320 | A-20091115-7 |
71 | CS001515000096 | ๆฐด้ ้ฝๅญ | 9 | ไธๆ | 1960-11-29 | 58 | 144-0053 | ๆฑไบฌ้ฝๅคง็ฐๅบ่ฒ็ฐๆฌ็บ********** | S13001 | 20150614 | A-20100724-7 |
122 | CS013615000053 | ่ฅฟ่ ๅญฃ่กฃ | 1 | ๅฅณๆง | 1953-10-18 | 65 | 261-0026 | ๅ่็ๅ่ๅธ็พๆตๅบๅนๅผต่ฅฟ********** | S12013 | 20150128 | B-20100329-6 |
144 | CS020412000161 | ๅฐๅฎฎ ่ซ | 1 | ๅฅณๆง | 1974-05-21 | 44 | 174-0042 | ๆฑไบฌ้ฝๆฟๆฉๅบๆฑๅไธ********** | S13020 | 20150822 | B-20081021-3 |
178 | CS001215000097 | ็ซนไธญ ใใใฟ | 1 | ๅฅณๆง | 1990-07-25 | 28 | 146-0095 | ๆฑไบฌ้ฝๅคง็ฐๅบๅคๆฉๅท********** | S13001 | 20170315 | A-20100211-2 |
252 | CS035212000007 | ๅ ๆ ๆตๆขจ้ฆ | 1 | ๅฅณๆง | 1990-12-04 | 28 | 152-0023 | ๆฑไบฌ้ฝ็ฎ้ปๅบๅ ซ้ฒ********** | S13035 | 20151013 | B-20101018-6 |
259 | CS002515000386 | ้็ฐ ใณใฆ | 1 | ๅฅณๆง | 1963-05-30 | 55 | 185-0013 | ๆฑไบฌ้ฝๅฝๅๅฏบๅธ่ฅฟๆใฑ็ชช********** | S13002 | 20160410 | C-20100127-8 |
293 | CS001615000372 | ็จฒๅฃ ๅฏฟใ ่ฑ | 1 | ๅฅณๆง | 1956-10-29 | 62 | 144-0035 | ๆฑไบฌ้ฝๅคง็ฐๅบๅ่ฒ็ฐ********** | S13001 | 20170403 | A-20100104-1 |
297 | CS032512000121 | ๆพไบ ็ฅไธ | 1 | ๅฅณๆง | 1962-09-04 | 56 | 210-0011 | ็ฅๅฅๅท็ๅทๅดๅธๅทๅดๅบๅฏๅฃซ่ฆ********** | S13032 | 20150727 | A-20100103-5 |
ํด์ค:
์ด ์ฝ๋์์๋ Python์ Pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ df_customer๋ผ๋ ์ด๋ฆ์ DataFrame์์ ํ์ ํํฐ๋งํ๊ณ ์๋ค. ํํฐ๋ง์ query() ๋ฉ์๋์์ ์ง์ ํ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ด๋ฃจ์ด์ง๋ฉฐ, ์ด ๋ฉ์๋๋ ๋ถ์ธ ์์ ๋ํ๋ด๋ ๋ฌธ์์ด ์ธ์๋ฅผ ๋ฐ์ต๋๋ค.
status_cd: df_customer DataFrame์ ์ปฌ๋ผ์ด๋ผ๊ณ ๊ฐ์ ํ๋ค.
. : ํ์ด์ฌ์์ ๊ฐ์ฒด์ ๋ฉ์๋๋ ์์ฑ์ ์ ๊ทผํ ๋ ์ฌ์ฉํ๋ ์ ํ๊ธฐ๋ฒ์ด๋ค.
str: str: status_cd ์ปฌ๋ผ์ ๋ฌธ์์ด ๋ฉ์๋๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
contains() : ์ปฌ๋ผ์ ๊ฐ ์์์ ์ฃผ์ด์ง ๋ถ๋ถ ๋ฌธ์์ด ๋๋ ์ ๊ท ํํ์์ด ์กด์ฌํ๋์ง ํ์ธํ๋ ๋ฌธ์์ด ๋ฉ์๋์ด๋ค.
r'^[A-F]. *[1-9]$': ๋ฌธ์ A๋ถํฐ F(ํฌํจ)๋ก ์์ํ๊ณ 1๋ถํฐ 9(ํฌํจ)์ ์ซ์๋ก ๋๋๋ ๋ฌธ์์ด๊ณผ ์ผ์นํ๋ ์ ๊ท ํํ์ ํจํด์ด๋ค. ํจํด ์์ r ์ ๋์ฌ๋ ์์ ๋ฌธ์์ด์์ ๋ํ๋ ๋๋ค. ์ด๋ ๋ฐฑ์ฌ๋์๊ฐ ์ด์ค์ผ์ดํ ๋ฌธ์๊ฐ ์๋ ๋ฆฌํฐ๋ด ๋ฐฑ์ฌ๋์๋ก ์ทจ๊ธ๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
๋ํ, query() ๋ฉ์๋์์ engine์ ์ธ์๋ก 'python'์ด๋ผ๋ ๊ฐ์ด ์ง์ ๋์ด ์๋ค. ์ด๋ Pandas๊ฐ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ์์ง์ด numexpr๋ก ์ฟผ๋ฆฌ ์ข ๋ฅ์ ๋ฐ๋ผ์๋ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์ง๋ง, ๋ชจ๋ ์ข ๋ฅ์ ์ ๊ท ํํ์์ ์ง์ํ์ง ์์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฒ๋ฆฌ๋๋๋ก ํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก .head(10) ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ํํฐ ์กฐ๊ฑด๊ณผ ์ผ์นํ๋ ์ฒ์ 10๊ฐ์ ๋ผ์ธ์ผ๋ก ์ถ๋ ฅ์ด ์ ํ๋๋ค.
P-016: ๋งค์ฅ ๋ฐ์ดํฐ(df_store)์์ ์ ํ๋ฒํธ(tel_no)๊ฐ 3์๋ฆฌ-3์๋ฆฌ-4์๋ฆฌ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ํ์ํ๋ผ.
df_store.query("tel_no.str.contains(r'^[0-9]{3}-[0-9]{3}-[0-9]{4}$')",
engine='python')
ย | store_cd | store_name | prefecture_cd | prefecture | address | address_kana | tel_no | longitude | latitude | floor_area |
---|---|---|---|---|---|---|---|---|---|---|
0 | S12014 | ๅ่ๅฐๅบ | 12 | ๅ่็ | ๅ่็ๅ่ๅธ็จฒๆฏๅบๅ่ๅฐไธไธ็ฎ | ใใใฑใณใใใทใคใใฒใฏใใฐใตใใคใคใใใงใฆใก | 043-123-4003 | 140.1180 | 35.63559 | 1698.0 |
1 | S13002 | ๅฝๅๅฏบๅบ | 13 | ๆฑไบฌ้ฝ | ๆฑไบฌ้ฝๅฝๅๅฏบๅธๆฌๅคไบไธ็ฎ | ใใฆใญใงใฆใใณใฏใใณใธใทใใณใใใใงใฆใก | 042-123-4008 | 139.4802 | 35.70566 | 1735.0 |
2 | S14010 | ่ๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบ่ๅไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใญใฏใใคใใใงใฆใก | 045-123-4032 | 139.6326 | 35.50049 | 1732.0 |
3 | S14033 | ้ฟไน ๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ้ฟไน ๅ่ฅฟไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใขใฏใฏใใทใคใใใงใฆใก | 045-123-4043 | 139.4961 | 35.45918 | 1495.0 |
4 | S14036 | ็ธๆจกๅไธญๅคฎๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็็ธๆจกๅๅธไธญๅคฎไบไธ็ฎ | ใซใใฌใฏใฑใณใตใฌใใใฉใทใใฅใฆใชใฆใใใงใฆใก | 042-123-4045 | 139.3716 | 35.57327 | 1679.0 |
7 | S14040 | ้ทๆดฅ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ทๅบ้ทๆดฅ็ฐใฟใชใฟๅฐไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใใชใฏใใฌใใฟใใใใใคใดใใงใฆใก | 045-123-4046 | 139.4994 | 35.52398 | 1548.0 |
9 | S14050 | ้ฟไน ๅ่ฅฟๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ้ฟไน ๅ่ฅฟไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใขใฏใฏใใทใคใใใงใฆใก | 045-123-4053 | 139.4961 | 35.45918 | 1830.0 |
11 | S13052 | ๆฃฎ้ๅบ | 13 | ๆฑไบฌ้ฝ | ๆฑไบฌ้ฝ็บ็ฐๅธๆฃฎ้ไธไธ็ฎ | ใใฆใญใงใฆใใใใใทใขใชใใตใณใใงใฆใก | 042-123-4030 | 139.4383 | 35.55293 | 1087.0 |
12 | S14028 | ไบใๆฉๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบไบใๆฉ็บ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใใฟใใใทใใงใฆ | 045-123-4042 | 139.4963 | 35.46304 | 1574.0 |
16 | S14012 | ๆฌ็งๅ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธไธญๅบๆฌ็งๅ็ฐ | ใซใใฌใฏใฑใณใจใณใใใทใใซใฏใใณใขใฏใฏใ | 045-123-4034 | 139.6582 | 35.42156 | 1341.0 |
18 | S14046 | ๅๅฑฑ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบๅๅฑฑ็ฐไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใญใฟใคใใฟใคใใใงใฆใก | 045-123-4049 | 139.5916 | 35.56189 | 831.0 |
19 | S14022 | ้ๅญๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็้ๅญๅธ้ๅญไธไธ็ฎ | ใซใใฌใฏใฑใณใบใทใทใบใทใคใใใงใฆใก | 046-123-4036 | 139.5789 | 35.29642 | 1838.0 |
20 | S14011 | ๆฅๅๆฌ็บๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บๅไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใใจใทใใณใใงใฆใจใณใใงใฆใก | 045-123-4033 | 139.6316 | 35.54655 | 890.0 |
21 | S13016 | ๅฐ้ไบๅบ | 13 | ๆฑไบฌ้ฝ | ๆฑไบฌ้ฝๅฐ้ไบๅธๆฌ็บไธไธ็ฎ | ใใฆใญใงใฆใใณใฌใใคใทใใณใใงใฆใคใใใงใฆใก | 042-123-4015 | 139.5094 | 35.70018 | 1399.0 |
22 | S14034 | ๅทๅด้ๅทๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๅทๅดๅธๅฎฎๅๅบ้ๅท | ใซใใฌใฏใฑใณใซใฏใตใญใทใใคใใจใฏใใฌใฏ | 044-123-4044 | 139.5998 | 35.57693 | 1318.0 |
26 | S14048 | ไธญๅทไธญๅคฎๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบไธญๅทไธญๅคฎไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใใซใฌใฏใใฅใฆใชใฆใใใงใฆใก | 045-123-4051 | 139.5758 | 35.54912 | 1657.0 |
27 | S12007 | ไฝๅๅบ | 12 | ๅ่็ | ๅ่็ไฝๅๅธไธๅฟๆดฅ | ใใใฑใณใตใฏใฉใทใซใใทใ | 043-123-4001 | 140.1452 | 35.71872 | 1895.0 |
28 | S14026 | ่พปๅ ่ฅฟๆตทๅฒธๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็่คๆฒขๅธ่พปๅ ่ฅฟๆตทๅฒธไบไธ็ฎ | ใซใใฌใฏใฑใณใใธใตใฏใทใใธใใฆใใทใซใคใฌใณใใใงใฆใก | 046-123-4040 | 139.4466 | 35.32464 | 1732.0 |
29 | S13041 | ๅ ซ็ๅญๅบ | 13 | ๆฑไบฌ้ฝ | ๆฑไบฌ้ฝๅ ซ็ๅญๅธๅคงๅก | ใใฆใญใงใฆใใใใชใฆใธใทใชใชใใซ | 042-123-4026 | 139.4235 | 35.63787 | 810.0 |
31 | S14049 | ๅทๅดๅคงๅธซๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๅทๅดๅธๅทๅดๅบไธญ็ฌไธไธ็ฎ | ใซใใฌใฏใฑใณใซใฏใตใญใทใซใฏใตใญใฏใใซใผใตใณใใงใฆใก | 044-123-4052 | 139.7327 | 35.53759 | 962.0 |
32 | S14023 | ๅทๅดๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๅทๅดๅธๅทๅดๅบๆฌ็บไบไธ็ฎ | ใซใใฌใฏใฑใณใซใฏใตใญใทใซใฏใตใญใฏใใณใใงใฆใใใงใฆใก | 044-123-4037 | 139.7028 | 35.53599 | 1804.0 |
33 | S13018 | ๆธ ็ฌๅบ | 13 | ๆฑไบฌ้ฝ | ๆฑไบฌ้ฝๆธ ็ฌๅธๆพๅฑฑไธไธ็ฎ | ใใฆใญใงใฆใใญใจใปใทใใใคใใคใใใงใฆใก | 042-123-4017 | 139.5178 | 35.76885 | 1220.0 |
35 | S14027 | ๅ่คๆฒขๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็่คๆฒขๅธๅ่คๆฒข | ใซใใฌใฏใฑใณใใธใตใฏใทใใใใใธใตใฏ | 046-123-4041 | 139.4896 | 35.33762 | 1521.0 |
36 | S14021 | ไผๅขๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ไผๅขๅๅธไผๅขๅๅไธ็ฎ | ใซใใฌใฏใฑใณใคใปใใฉใทใคใปใใฉใจใณใใงใฆใก | 046-123-4035 | 139.3129 | 35.40169 | 962.0 |
37 | S14047 | ็ธๆจกๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็็ธๆจกๅๅธๅไปฃ็ฐๅ ญไธ็ฎ | ใซใใฌใฏใฑใณใตใฌใใใฉใทใใจใใญใฏใใงใฆใก | 042-123-4050 | 139.3748 | 35.55959 | 1047.0 |
38 | S12013 | ็ฟๅฟ้ๅบ | 12 | ๅ่็ | ๅ่็็ฟๅฟ้ๅธ่ๅไธไธ็ฎ | ใใใฑใณใใฉใทใใทใทใใพใใคใใใงใฆใก | 047-123-4002 | 140.0220 | 35.66122 | 808.0 |
40 | S14042 | ๆฐๅฑฑไธๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธไธญๅบๆฐๅฑฑไธไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใซใฏใทใณใคใใทใฟใใใงใฆใก | 045-123-4047 | 139.6593 | 35.43894 | 1044.0 |
42 | S12030 | ๅ ซๅนกๅบ | 12 | ๅ่็ | ๅ่็ๅธๅทๅธๅ ซๅนกไธไธ็ฎ | ใใใฑใณใคใใซใฏใทใคใฏใฟใตใณใใงใฆใก | 047-123-4005 | 139.9240 | 35.72318 | 1162.0 |
44 | S14025 | ๅคงๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๅคงๅๅธไธๅ็ฐ | ใซใใฌใฏใฑใณใคใใใทใทใขใฏใ | 046-123-4039 | 139.4680 | 35.43414 | 1011.0 |
45 | S14045 | ๅๆจๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๅๆจๅธไธญ็บไบไธ็ฎ | ใซใใฌใฏใฑใณใขใใฎใทใใซใใงใฆใใใงใฆใก | 046-123-4048 | 139.3651 | 35.44182 | 980.0 |
47 | S12029 | ๆฑ้ๅบ | 12 | ๅ่็ | ๅ่็ๆตฆๅฎๅธๆฑ้ไธไธ็ฎ | ใใใฑใณใฆใฉใคในใทใใฌใทใใคใใใงใฆใก | 047-123-4004 | 139.8968 | 35.65086 | 1101.0 |
49 | S12053 | ้ซๆดฒๅบ | 12 | ๅ่็ | ๅ่็ๆตฆๅฎๅธ้ซๆดฒไบไธ็ฎ | ใใใฑใณใฆใฉใคในใทใฟใซในใดใใงใฆใก | 047-123-4006 | 139.9176 | 35.63755 | 1555.0 |
51 | S14024 | ไธ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๅทๅดๅธๅคๆฉๅบไธ็ฐๅไธ็ฎ | ใซใใฌใฏใฑใณใซใฏใตใญใทใฟใใฏใใฟใจใณใใงใฆใก | 044-123-4038 | 139.5424 | 35.60770 | 972.0 |
52 | S14006 | ่ใ่ฐทๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบ่ใ่ฐท | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใฏใบใฌใค | 045-123-4031 | 139.5633 | 35.53573 | 1886.0 |
ํด์ค:
์ด ์ฝ๋์์๋ Python์ Pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ df_store๋ผ๋ DataFrame์์ ํ์ ํํฐ๋งํ๊ณ ์๋ค. ํํฐ๋ง์ query() ๋ฉ์๋์์ ์ง์ ํ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ด๋ฃจ์ด์ง๋ฉฐ, ์ด ๋ฉ์๋๋ ๋ถ์ธ ์์ ๋ํ๋ด๋ ๋ฌธ์์ด ์ธ์๋ฅผ ๋ฐ์ต๋๋ค.
tel_no : df_store DataFrame์ ์ปฌ๋ผ์ด๋ผ๊ณ ๊ฐ์ ํ๋ค.
. : ํ์ด์ฌ์์ ๊ฐ์ฒด์ ๋ฉ์๋๋ ์์ฑ์ ์ ๊ทผํ ๋ ์ฌ์ฉํ๋ ์ ํ๊ธฐ๋ฒ์ด๋ค.
str : tel_no ์ปฌ๋ผ์ ๋ฌธ์์ด ๋ฉ์๋๋ฅผ ์ฐธ์กฐํ๋ค.
contains() : ์ปฌ๋ผ์ ๊ฐ ์์์ ์ฃผ์ด์ง ๋ถ๋ถ ๋ฌธ์์ด ๋๋ ์ ๊ท ํํ์์ด ์กด์ฌํ๋์ง ํ์ธํ๋ ๋ฌธ์์ด ๋ฉ์๋์ด๋ค.
r'^[0-9]{3}-[0-9]{3}-[0-9]{3}-[0-9]{4}$' : ๋ถ๋ฏธ ์ ํ๋ฒํธ ํ์(3์๋ฆฌ, ํ์ดํ, ์ถ๊ฐ 3์๋ฆฌ, ์ถ๊ฐ 3์๋ฆฌ, ์ถ๊ฐ ํ์ดํ, ์ถ๊ฐ 4์๋ฆฌ)์ ๋ฌธ์์ด๊ณผ ์ผ์นํ๋ ์ ๊ท์ ํจํด์ด๋ค. ํจํด ์์ r ์ ๋์ฌ๋ ์์ ๋ฌธ์์ด์์ ๋ํ๋ด๋ฉฐ, ์ด๋ ๋ฐฑ์ฌ๋์๊ฐ ์ด์ค์ผ์ดํ ๋ฌธ์๊ฐ ์๋ ๋ฆฌํฐ๋ด ๋ฐฑ์ฌ๋์๋ก ์ทจ๊ธ๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ค๊ดํธ {}๋ ์ง์ ํจํด์ ์ง์ ํ ํ์๋งํผ ๋ฐ๋ณตํ๋ค๋ ๊ฒ์ ๋ํ๋ด๋ฉฐ, ๋ง์ง๋ง $๋ ๋ฌธ์์ด์ ๋์ ์๋ฏธํ๋ค.
๋ํ, query() ๋ฉ์๋์์ engine์ ์ธ์์ 'python'์ด๋ผ๋ ๊ฐ์ด ์ง์ ๋์ด ์๋ค. ์ด๋ Pandas๊ฐ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ์์ง์ด numexpr๋ก ์ฟผ๋ฆฌ ์ข ๋ฅ์ ๋ฐ๋ผ์๋ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์ง๋ง, ๋ชจ๋ ์ข ๋ฅ์ ์ ๊ท ํํ์์ ์ง์ํ์ง ์์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ฒ๋ฆฌํ๊ฒ ๋ฉ๋๋ค.
๊ทธ ๊ฒฐ๊ณผ, df_store DataFrame์์ tel_no ์ปฌ๋ผ์ ์ ํจํ ๋ถ๋ฏธ ์ ํ๋ฒํธ๋ฅผ ๊ฐ์ง ํ๋ง ๋จ๊ธฐ๋ ํํฐ๊ฐ ์์ฑ๋๋ค.
P-017: ๊ณ ๊ฐ ๋ฐ์ดํฐ(df_customer)๋ฅผ ์๋ ์์ผ(birth_day)์ ๊ธฐ์ค์ผ๋ก ๋์ด์์ผ๋ก ์ ๋ ฌํ๊ณ , ๋งจ ์๋ถํฐ 10๊ฐ์ ํญ๋ชฉ์ ๋ชจ๋ ํ์ํ๋ผ.
df_customer.sort_values('birth_day').head(10)
ย | customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd |
---|---|---|---|---|---|---|---|---|---|---|---|
18817 | CS003813000014 | ๆๅฑฑ ่ใ ็พ | 1 | ๅฅณๆง | 1928-11-26 | 90 | 182-0007 | ๆฑไบฌ้ฝ่ชฟๅธๅธ่้ๅฐ********** | S13003 | 20160214 | 0-00000000-0 |
12328 | CS026813000004 | ๅๆ ๆ้ฝ | 1 | ๅฅณๆง | 1928-12-14 | 90 | 251-0043 | ็ฅๅฅๅท็่คๆฒขๅธ่พปๅ ๅ ็บ********** | S14026 | 20150723 | 0-00000000-0 |
15682 | CS018811000003 | ็ๆฒข ็พ้ | 1 | ๅฅณๆง | 1929-01-07 | 90 | 204-0004 | ๆฑไบฌ้ฝๆธ ็ฌๅธ้ๅกฉ********** | S13018 | 20150403 | 0-00000000-0 |
15302 | CS027803000004 | ๅ ๆ ๆ้ | 0 | ็ทๆง | 1929-01-12 | 90 | 251-0031 | ็ฅๅฅๅท็่คๆฒขๅธ้ต ๆฒผ่คใ่ฐท********** | S14027 | 20151227 | 0-00000000-0 |
1681 | CS013801000003 | ๅคฉ้ ๆ้ | 0 | ็ทๆง | 1929-01-15 | 90 | 274-0824 | ๅ่็่นๆฉๅธๅๅๆฑ********** | S12013 | 20160120 | 0-00000000-0 |
7511 | CS001814000022 | ้ถด็ฐ ้็ฉ | 1 | ๅฅณๆง | 1929-01-28 | 90 | 144-0045 | ๆฑไบฌ้ฝๅคง็ฐๅบๅๅ ญ้ท********** | S13001 | 20161012 | A-20090415-7 |
2378 | CS016815000002 | ๅฑฑๅ ็พ็ด | 1 | ๅฅณๆง | 1929-02-22 | 90 | 184-0005 | ๆฑไบฌ้ฝๅฐ้ไบๅธๆก็บ********** | S13016 | 20150629 | C-20090923-C |
4680 | CS009815000003 | ไธญ็ฐ ้็ฉ | 1 | ๅฅณๆง | 1929-04-08 | 89 | 154-0014 | ๆฑไบฌ้ฝไธ็ฐ่ฐทๅบๆฐ็บ********** | S13009 | 20150421 | D-20091021-E |
16070 | CS005813000015 | ้่ฐท ๆตๆขจ้ฆ | 1 | ๅฅณๆง | 1929-04-09 | 89 | 165-0032 | ๆฑไบฌ้ฝไธญ้ๅบ้ทบๅฎฎ********** | S13005 | 20150506 | 0-00000000-0 |
6305 | CS012813000013 | ๅฎ้ ๅๆ | 1 | ๅฅณๆง | 1929-04-09 | 89 | 231-0806 | ็ฅๅฅๅท็ๆจชๆตๅธไธญๅบๆฌ็ง็บ********** | S14012 | 20150712 | 0-00000000-0 |
ํด์ค:
์ด ์ฝ๋์์๋ Python์ Pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ df_customer๋ผ๋ DataFrame์ ํ์ birth_day ์ด์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ์๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ ๋ ฌ๋ DataFrame์ head() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฒ์ 10๊ฐ์ ํ์ผ๋ก ์ ํ๋ฉ๋๋ค.
df_customer: ์ ๋ ฌ๋ DataFrame์ ์ด๋ฆ์ด๋ค.
sort_values() : ํ๋ ์ด์์ ์ปฌ๋ผ ๊ฐ์ ๊ธฐ์ค์ผ๋ก DataFrame์ ์ ๋ ฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ Pandas์ ๋ฉ์๋์ด๋ค. ์ด ๊ฒฝ์ฐ birth_day ์ปฌ๋ผ์ด ์ ๋ ฌ ํค๋ก ์ง์ ๋์ด ์๋ค.
'birth_day' : ์ ๋ ฌ ํค๋ก ์ฌ์ฉ๋๋ ์ปฌ๋ผ์ ์ด๋ฆ์ด๋ค.
.head(10) : ์ถ๋ ฅ์ ์ ๋ ฌ๋ DataFrame์ ์ฒซ 10ํ์ผ๋ก ์ ํํ๋ ๋ฉ์๋ ํธ์ถ์ด๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก df_customer DataFrame์ ์ฒซ 10๊ฐ์ ํ์ด birth_day ์ปฌ๋ผ์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ์ํ๋ก ์ถ๋ ฅ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด birth_day๊ฐ ๊ณ ๊ฐ์ ์๋ ์์ผ์ ๋ํ๋ธ๋ค๊ณ ๊ฐ์ ํ ๋, ๋ฐ์ดํฐ ์งํฉ์์ ๊ฐ์ฅ ์ค๋๋ 10๋ช ์ ๊ณ ๊ฐ์ ํ์ธํ ์ ์์ต๋๋ค.
P-018: ๊ณ ๊ฐ ๋ฐ์ดํฐ(df_customer)๋ฅผ ์๋ ์์ผ(birth_day)์ ๊ธฐ์ค์ผ๋ก ์ ์ ์์๋ก ์ ๋ ฌํ๊ณ , ๋งจ ์๋ถํฐ 10๊ฐ์ ํญ๋ชฉ์ ๋ชจ๋ ํ์ํ๋ผ.
df_customer.sort_values('birth_day', ascending=False).head(10)
ย | customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd |
---|---|---|---|---|---|---|---|---|---|---|---|
15639 | CS035114000004 | ๅคงๆ ็พ้ | 1 | ๅฅณๆง | 2007-11-25 | 11 | 156-0053 | ๆฑไบฌ้ฝไธ็ฐ่ฐทๅบๆก********** | S13035 | 20150619 | 6-20091205-6 |
7468 | CS022103000002 | ็ฆๅฑฑ ใฏใใ | 9 | ไธๆ | 2007-10-02 | 11 | 249-0006 | ็ฅๅฅๅท็้ๅญๅธ้ๅญ********** | S14022 | 20160909 | 0-00000000-0 |
10745 | CS002113000009 | ๆด็ฐ ็ๆ ๅญ | 1 | ๅฅณๆง | 2007-09-17 | 11 | 184-0014 | ๆฑไบฌ้ฝๅฐ้ไบๅธ่ฒซไบๅ็บ********** | S13002 | 20160304 | 0-00000000-0 |
19811 | CS004115000014 | ๆพไบ ไบฌๅญ | 1 | ๅฅณๆง | 2007-08-09 | 11 | 165-0031 | ๆฑไบฌ้ฝไธญ้ๅบไธ้ทบๅฎฎ********** | S13004 | 20161120 | 1-20081231-1 |
7039 | CS002114000010 | ๅฑฑๅ ้ฅ | 1 | ๅฅณๆง | 2007-06-03 | 11 | 184-0015 | ๆฑไบฌ้ฝๅฐ้ไบๅธ่ฒซไบๅ็บ********** | S13002 | 20160920 | 6-20100510-1 |
3670 | CS025115000002 | ๅฐๆณ ๅคๅธ | 1 | ๅฅณๆง | 2007-04-18 | 11 | 245-0018 | ็ฅๅฅๅท็ๆจชๆตๅธๆณๅบไธ้ฃฏ็ฐ็บ********** | S14025 | 20160116 | D-20100913-D |
12493 | CS002113000025 | ๅบๆซ ใพใชใฟ | 1 | ๅฅณๆง | 2007-03-30 | 12 | 184-0015 | ๆฑไบฌ้ฝๅฐ้ไบๅธ่ฒซไบๅ็บ********** | S13002 | 20171030 | 0-00000000-0 |
15977 | CS033112000003 | ้ท้ ็พ็ด | 1 | ๅฅณๆง | 2007-03-22 | 12 | 245-0051 | ็ฅๅฅๅท็ๆจชๆตๅธๆธๅกๅบๅ็ฌ็บ********** | S14033 | 20150606 | 0-00000000-0 |
5716 | CS007115000006 | ็ฆๅฒก ็ฌ | 1 | ๅฅณๆง | 2007-03-10 | 12 | 285-0845 | ๅ่็ไฝๅๅธ่ฅฟๅฟๆดฅ********** | S12007 | 20151118 | F-20101016-F |
15097 | CS014113000008 | ็ขๅฃ ่็ท | 1 | ๅฅณๆง | 2007-03-05 | 12 | 260-0041 | ๅ่็ๅ่ๅธไธญๅคฎๅบๆฑๅ่********** | S12014 | 20150622 | 3-20091108-6 |
ํด์ค:
์ด ์ฝ๋์์๋ Python์ Pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ df_customer๋ผ๋ DataFrame์ ํ์ birth_day ์ด์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ์๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ ๋ ฌ๋ DataFrame์ head() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฒ์ 10๊ฐ์ ํ์ผ๋ก ์ ํ๋ฉ๋๋ค.
df_customer: ์ ๋ ฌ๋ DataFrame์ ์ด๋ฆ์ ๋๋ค.
sort_values() : Pandas์ ๋ฉ์๋์ด๋ฉฐ, ํ๋ ์ด์์ ์ปฌ๋ผ ๊ฐ์ ๊ธฐ์ค์ผ๋ก DataFrame์ ์ ๋ ฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ, birth_day ์ปฌ๋ผ์ด ์ ๋ ฌ ํค๋ก ์ง์ ๋์ด ์์ต๋๋ค.
'birth_day' : ์ ๋ ฌ ํค๋ก ์ฌ์ฉ๋ ์ปฌ๋ผ์ ์ด๋ฆ์ ๋๋ค.
ascending=False : ์ด ์ธ์๋ ์ ๋ ฌ ์์๋ฅผ ๊ธฐ๋ณธ ์ค๋ฆ์ฐจ์์ด ์๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
.head(10): ์ถ๋ ฅ์ ์ ๋ ฌ๋ DataFrame์ ์ฒ์ 10ํ์ผ๋ก ์ ํํ๋ ๋ฉ์๋ ํธ์ถ์ด๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ df_customer DataFrame์ ์ฒ์ 10๊ฐ์ ํ์ด๋ฉฐ, birth_day ์ด์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๋ค. ์ด๋ฅผ ํตํด birth_day๊ฐ ๊ณ ๊ฐ์ ์๋ ์์ผ์ ๋ํ๋ธ๋ค๊ณ ๊ฐ์ ํ ๋, ๋ฐ์ดํฐ ์ธํธ์์ ๊ฐ์ฅ ์ด๋ฆฐ 10๋ช ์ ๊ณ ๊ฐ์ ํ์ธํ ์ ์์ต๋๋ค.
P-019: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์ ๋ํด ๊ฑด๋น ๋งค์ถ ๊ธ์ก(amount)์ด ๋์ ์์๋๋ก ์์๋ฅผ ๋ถ์ฌํ๊ณ , ๋งจ ์๋ถํฐ 10๊ฑด์ฉ ํ์ํ๋ค. ํญ๋ชฉ์ ๊ณ ๊ฐ ID(customer_id), ๋งค์ถ ๊ธ์ก(amount), ๋ถ์ฌํ ๋ญํฌ๋ฅผ ํ์ํ๋๋ก ํ๋ค. ๋จ, ๋งค์ถ์ก(amount)์ด ๋์ผํ ๊ฒฝ์ฐ ๋์ผํ ์์๋ฅผ ๋ถ์ฌํ๋ค.
df_tmp = pd.concat([df_receipt[['customer_id', 'amount']]
,df_receipt['amount'].rank(method='min',
ascending=False)], axis=1)
df_tmp.columns = ['customer_id', 'amount', 'ranking']
df_tmp.sort_values('ranking').head(10)
ย | customer_id | amount | ranking |
---|---|---|---|
1202 | CS011415000006 | 10925 | 1.0 |
62317 | ZZ000000000000 | 6800 | 2.0 |
54095 | CS028605000002 | 5780 | 3.0 |
4632 | CS015515000034 | 5480 | 4.0 |
72747 | ZZ000000000000 | 5480 | 4.0 |
10320 | ZZ000000000000 | 5480 | 4.0 |
97294 | CS021515000089 | 5440 | 7.0 |
28304 | ZZ000000000000 | 5440 | 7.0 |
92246 | CS009415000038 | 5280 | 9.0 |
68553 | CS040415000200 | 5280 | 9.0 |
ํด์ค:
์ฃผ์ด์ง ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ ์ฒ๋ฆฌ๋ฅผ ์ํํ๊ณ ์๋ค.
pd.concat() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ ๋ฐ์ดํฐ ํ๋ ์ df_receipt[['customer_id', 'amount']]์ df_receipt['amount'].rank(method='min', ascending=False)๋ฅผ ์ด ์ถ(axis= 1)์ ๋ฐ๋ผ ์ฐ๊ฒฐํ๊ณ ์๋ค. ์ป์ด์ง ๋ฐ์ดํฐ ํ๋ ์์ ๋ณ์ df_tmp์ ํ ๋น๋๋ค. ์ฒซ ๋ฒ์งธ dataframe df_receipt[['customer_id', 'amount']]์๋ ๋ ํฐ dataframe df_receipt์์ 'customer_id'์ 'amount' ๋ ๊ฐ์ ์ด์ด ํฌํจ๋์ด ์๊ณ , ๋ ๋ฒ์งธ dataframe์ ' min' ๋ฐฉ์์ผ๋ก ๊ณ์ฐํ 'amount' ์ด์ ๋ด๋ฆผ์ฐจ์ ์์๋ฅผ ๋ด๊ณ ์๋ค.
์ฐ๊ฒฐ๋ df_tmp์ ์ปฌ๋ผ์ df_tmp.columns ์์ฑ์ ์ฌ์ฉํ์ฌ 'customer_id', 'amount', 'ranking'์ผ๋ก ์ด๋ฆ์ ๋ฐ๊พผ๋ค.
sort_values() ๋ฉ์๋๋ก df_tmp์ ๋ฐ์ดํฐ ํ๋ ์์ 'ranking' ์ด์์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ , head(10) ๋ฉ์๋๋ก ์์ 10๊ฐ์ ํ์ ๋ฐํํ๋ค.
์ ์ฒด์ ์ผ๋ก ์ด ์ฝ๋๋ df_receipt dataframe์ 'customer_id'์ 'amount' ์ปฌ๋ผ๊ณผ 'min' ๋ฉ์๋๋ก ๊ณ์ฐํ 'amount'์ ์์๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ฐ๊ฒฐํ๊ณ ์๋ค. ๊ฒฐ๊ณผ dataframe์ 'ranking' ์ปฌ๋ผ์ผ๋ก ์ ๋ ฌ๋์ด ๊ฐ์ฅ ๋์ ์์๋ฅผ ๊ฐ์ง ์์ 10๊ฐ์ ํ์ ๋ฐํํฉ๋๋ค. ์ด๋ ๊ตฌ๋งค์ ๊ฐ์ฅ ๋ง์ ๋น์ฉ์ ์ง์ถํ ๊ณ ๊ฐ์ ๋ํ๋ ๋๋ค.
P-020: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์ ๋ํด ๊ฑด๋น ๋งค์ถ ๊ธ์ก(amount)์ด ๋์ ์์๋๋ก ์์๋ฅผ ๋ถ์ฌํ๊ณ , ๋งจ ์๋ถํฐ 10๊ฑด์ฉ ํ์ํ๋ค. ํญ๋ชฉ์ ๊ณ ๊ฐ ID(customer_id), ๋งค์ถ ๊ธ์ก(amount), ๋ถ์ฌํ ์์๋ฅผ ํ์ํ๋ค. ๋จ, ๋งค์ถ๊ธ์ก(amount)์ด ๋์ผํ ๊ฒฝ์ฐ์๋ ๋ณ๋์ ์์๋ฅผ ๋ถ์ฌํด์ผ ํ๋ค.
df_tmp = pd.concat([df_receipt[['customer_id', 'amount']]
,df_receipt['amount'].rank(method='first',
ascending=False)], axis=1)
df_tmp.columns = ['customer_id', 'amount', 'ranking']
df_tmp.sort_values('ranking').head(10)
ย | customer_id | amount | ranking |
---|---|---|---|
1202 | CS011415000006 | 10925 | 1.0 |
62317 | ZZ000000000000 | 6800 | 2.0 |
54095 | CS028605000002 | 5780 | 3.0 |
4632 | CS015515000034 | 5480 | 4.0 |
10320 | ZZ000000000000 | 5480 | 5.0 |
72747 | ZZ000000000000 | 5480 | 6.0 |
28304 | ZZ000000000000 | 5440 | 7.0 |
97294 | CS021515000089 | 5440 | 8.0 |
596 | CS015515000083 | 5280 | 9.0 |
11275 | CS017414000114 | 5280 | 10.0 |
ย
ํด์ค:
์ฃผ์ด์ง ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ ์ฒ๋ฆฌ๋ฅผ ์ํํ๊ณ ์๋ค.
pd.concat() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ ๋ฐ์ดํฐ ํ๋ ์ df_receipt[['customer_id', 'amount']]์ df_receipt['amount'].rank(method='first', ascending=False)๋ฅผ ์ด์ถ( axis=1)๋ก ์ฐ๊ฒฐํ๊ณ ์์ต๋๋ค. ์ป์ด์ง ๋ฐ์ดํฐ ํ๋ ์์ ๋ณ์ df_tmp์ ๋์ ๋๋ค. ์ฒซ ๋ฒ์งธ dataframe df_receipt[['customer_id', 'amount']]์๋ ๋ ํฐ dataframe df_receipt์์ 'customer_id'์ 'amount' ๋ ๊ฐ์ ์ด์ด ํฌํจ๋์ด ์์ง๋ง, ๋ ๋ฒ์งธ dataframe์ ' first' ๋ฐฉ์์ผ๋ก ๊ณ์ฐํ 'amount' ์ด์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์์๋ฅผ ๋งค๊ธด ๊ฒ์ด๋ค.
์ฐ๊ฒฐ๋ df_tmp์ ์ด์ df_tmp.columns ์์ฑ์ ์ฌ์ฉํ์ฌ 'customer_id', 'amount', 'ranking'์ผ๋ก ์ด๋ฆ์ ๋ฐ๊พผ๋ค.
sort_values() ๋ฉ์๋๋ก df_tmp์ ๋ฐ์ดํฐ ํ๋ ์์ 'ranking' ์ด์์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ , head(10) ๋ฉ์๋๋ก ์์ 10๊ฐ์ ํ์ ๋ฐํํ๋ค.
์ ์ฒด์ ์ผ๋ก ์ด ์ฝ๋๋ df_receipt dataframe์ 'customer_id'์ 'amount' ์ปฌ๋ผ๊ณผ 'first' ๋ฉ์๋๋ก ๊ณ์ฐํ 'amount'์ ์์๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ฐ๊ฒฐํ๊ณ ์์ต๋๋ค. ์์ฑ๋ dataframe์ 'ranking' ์ปฌ๋ผ์ผ๋ก ์ ๋ ฌ๋์ด ๊ฐ์ฅ ๋์ ์์๋ฅผ ๊ฐ์ง ์์ 10๊ฐ์ ํ์ ๋ฐํํฉ๋๋ค. ์ด๋ ๊ตฌ๋งคํ ์ํ์ ๊ฐ์ฅ ๋ง์ ๋์ ์ง์ถํ ๊ณ ๊ฐ์ ๋ํ๋ ๋๋ค. ์ด ์ฝ๋์ ์ด์ ์ฝ๋์ ์ ์ผํ ์ฐจ์ด์ ์ ์ฌ์ฉ ๋ ์์ ๋ฉ์๋์ ๋๋ค. ์ฌ๊ธฐ์๋ 'first' ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ 'amount' ์ปฌ๋ผ์ ๋์ผํ ๊ฐ์ ๋์ผํ ์์๋ฅผ ํ ๋นํ๊ณ ์์ต๋๋ค. ๋ฐ๋ฉด 'min' ๋ฉ์๋ 'amount' ์ปฌ๋ผ์ ๋์ผํ ๊ฐ์ ๊ฐ์ฅ ๋ฎ์ ์์๋ฅผ ํ ๋นํ๊ณ ์์ต๋๋ค.
ย
ย
ย
Comment