• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    해결됨

프랜차이즈 입점 분석 과정에서 질문입니다.

21.05.12 22:49 작성 조회수 199

2

안녕하십니까.

언제나 즐겁고 흥미롭게 선생님의 멋진 강의를 수강하는 김영목입니다.

본 강의 수강 도중 코드를 하나하나 복습하면서 이해가 되지 않는 코드가 있어 설명 부탁드리고자 질문 올립니다.

df_31.loc[df_31["상호명_소문자"].str.contains("배스킨라빈스|베스킨라빈스|baskinrobbins"), "브랜드명"] = "배스킨라빈스"

df_31[["상호명", "브랜드명"]]

위의 코드에서 이해가 되지 않는 부분은 loc[] 안에 있는 "브랜드명"입니다. loc 안애는 행과 열을 지정해주도록 되어 있는 것으로 이해하고 있습니다. 하지만  지금 현재 원본파일과 전처리한 파일 어디에도 브랜드명이라는 이름을 가진 열은 존재하지 않습니다. 하지만  신기하게도 실제 저렇게 코드를 작성하고여 실행이 됬으며 추후 표를 확인해보면 브랜드명이 보이게 됩니다. 

어떻게 이러한 일이 가능한 것인지 알려주시길 부탁드립니다.

김영목 드림 

답변 2

·

답변을 작성해보세요.

1

드가자님의 프로필

드가자

질문자

2021.05.13

항상 우문현답을 주셔서 감사합니다. 

과찬 감사합니다 :)

0

안녕하세요. 김영목님 즐겁게 수강하고 계시다니 감사합니다!

loc로 데이터를 가져올 때는 아래의 방법으로 가져올 수 가 있습니다.

.loc[행]

.loc[행, 열]

.loc[조건, 열]

그리고 "열"을 써줄 때 없는 "열"을 작성해 줄 수 있습니다.

그래서 "브랜드명"이라는 컬럼을 loc를 통해 새로 만들어준 과정입니다.

.loc[조건, 열]

원래 "브랜드명"이 없기 때문에 아래 코드를 실행하기 전에 

df_31.loc[df_31["상호명_소문자"].str.contains("배스킨라빈스|베스킨라빈스|baskinrobbins"), "브랜드명"] = "배스킨라빈스"

아래 코드를 작성하면 없는 컬럼이라고 키에러 오류가 날거에요.

df_31.loc[df_31["상호명_소문자"].str.contains("배스킨라빈스|베스킨라빈스|baskinrobbins"), "브랜드명"] 

그런데 아래 처럼 "브랜드명"이라는 컬럼은 없지만 "배스킨라빈스"로 일괄적으로 해당 데이터에 브랜드명을 만들어 줄 수 있습니다.

df_31.loc[df_31["상호명_소문자"].str.contains("배스킨라빈스|베스킨라빈스|baskinrobbins"), "브랜드명"] = "배스킨라빈스"

위 과정을 통해 새로운 변수를 생성하는 것은 브랜드명을 일관되게 만들어주면 해당 브랜드명을 통해 빈도수등과 같은 다양한 연산을 할 수 있게 되기 때문입니다.

감사합니다!