팬더와 맥주

3164 단어 beerpythondatapandas
1982년 시작된 이래 처음으로 그레이트 아메리칸 비어 페스티벌(Great American Beer Festival)이 취소되고 외로운 펍 크롤링의 기회로 대체되었습니다. 디지털 여권이 배포되었고 "참석자"는 해당 지역에서 이용 가능한 양조장을 처음으로 살펴보았습니다.



이제 그 견해는 모두 훌륭하고 좋습니다. 이 팬데믹 기간 동안 흔들리지 않는 갈증을 해소할 수 있는 맥주를 찾기 위해 사용자가 정독할 수 있는 지침 또는 웹사이트와 함께 필요한 정보를 제공합니다.

무엇이 빠졌습니까? 파이썬. 그리고 팬더.

데이터를 CSV로 스크래핑한 후(향후 게시물을 작성할 수 있음) 양조장 이름, 위치(도시/주) 및 거래의 세 열로 구분된 컬렉션이 있습니다.

항상 그렇듯이 첫 번째 단계는 모든 것을 가져와 DataFrame으로 바꾸는 것입니다.

import pandas as pd
df = pd.read_csv("breweries.csv")

pd.set_option("max_colwidth", None)
set_option는 중요한 추가 사항이었습니다. 그렇지 않으면 제한된 열 너비에서 중요한 정보가 잘립니다.

1) 도시의 모든 양조장 찾기



이를 위해서는 위치를 통한 간단한 열 조회가 필요했습니다.
denver_breweries = df.loc[df["Location"] == "Denver, Colorado"]
이를 통해 내 주변의 가능성을 더 잘 볼 수 있었습니다.



2) 거래에 따라 양조장 찾기



이제 술에 취한 모험에 내가 혼자가 아니라면 어떨까요? 실제로 나를보고 싶어하는 친구가 있다면 어떨까요? 이것은 Buy One - Get One Free 거래가 유용할 때입니다. Deal 열 내의 하위 문자열로 검색할 수 있습니다.

def find_bogo_deals(brew_list):    
    new_df = brew_list[brew_list['Deal'].str.contains("BOGO") | brew_list['Deal'].str.contains("buy one, get one", case=False)]
    df = pd.DataFrame(new_df)
    return df

find_bogo_deals(denver_breweries)

노트북 시작 부분에 변수 denver_breweries를 선언했습니다.

이제 우리는 불로 요리하고 있습니다!



하지만 우리가 좋은 것을 원한다면 어떨까요? 2020년 가을을 예상하여 작년부터 양조 및 배럴 숙성된 특별 릴리스입니다. 그런 다음 정규식을 사용하여 하위 문자열 필터를 변경합니다.

import re

def find_specials(brew_list):

    special_list = ["special", "exclusive", "special release"]

    esc_lst = [re.escape(s) for s in special_list]   

    spec_pattern = '|'.join(esc_lst)

    new_df = brew_list[brew_list['Deal'].str.contains(spec_pattern, case=False)]    

    df = pd.DataFrame(new_df)

    return df


find_specials(denver_breweries)



훌륭한! 이 목록은 내가 운전하지 않을 것임을 확인해야 합니다.

분명히 여기에서 훨씬 더 많은 조작을 할 수 있습니다. 위치를 도시-주로 분할; 줄 바꿈을 제거하기 위해 Deal 열의 텍스트를 정리합니다. CSV를 SQL 데이터베이스로 내보내서 좀 더 놀아보기도 합니다.

어쨌든 이 게시물이 여러분이 노트북을 꺼내 일상 생활에 Python과 Pandas를 적용하는 데 영감을 주었으면 합니다. GABF 거래는 10월 17일(이번 토요일)에 종료되므로 마스크를 쓰고 이 어려운 시기에 지역 양조장을 지원하기 위해 나가십시오.

좋은 웹페이지 즐겨찾기