마케팅 담당자를 위한 데이터 유형: 숫자, 문자열 및 부울
게시 됨: 2017-08-10참고: 이 블로그 게시물은 선임 웹 분석가인 Adrian Palacios가 작성한 시리즈의 세 번째 게시물이며 마케팅 담당자에게 프로그래밍 언어 Python 설치에 필요한 정보와 지침을 제공하기 위해 작성되었습니다. 놓친 경우를 대비하여 Adrian의 첫 번째 게시물은 마케터가 처음에 그렇게 하는 것을 고려해야 하는 이유를 설명하고 그의 두 번째 게시물은 Python을 설치하는 방법을 설명합니다.
프로그래밍 방법을 배우기 시작했을 때 "데이터 유형"이라는 개념에 많은 어려움을 겪었습니다. 항상 가장 먼저 논의되는 주제 중 하나였으나 가장 추상적인 주제이기도 했습니다. 이해하지 못해서 답답해서 나는 보통 데이터 유형에 대한 논의를 건너뛰고 "그게 무슨 상관이야?"라고 스스로에게 말함으로써 합리화했습니다. 그러나 몇 년 동안 프로그래밍을 일상 업무의 일부로 만든 후 데이터 유형이 (천천히) 이해되기 시작했습니다.
데이터 유형이란 무엇입니까?
데이터 유형은 Python으로 할 수 있는 것과 할 수 없는 것을 제어하는 일련의 규칙입니다. 현실 세계에서 매일 비슷한 제약을 경험합니다. 식당에서 현금만 받는 곳에서 신용 카드로 식사 비용을 지불해 보십시오. 카누나 카약 대신 자전거를 타고 강을 따라 내려갑니다. 또는 설탕 대신 소금으로 케이크를 굽는다. 정말로 원한다면 이러한 것들을 시도할 수 있지만 결과에 만족할지는 의문입니다.
마찬가지로 프로그래밍을 베이킹으로 생각하면 계란, 밀가루, 버터, 베이킹 파우더 및 설탕이 케이크를 만들기 위한 핵심 성분인 것처럼 데이터 유형은 모든 Python 코드의 핵심 성분입니다. 아니면 파이를 원하십니까? 밀가루를 덜 사용하고 베이킹 파우더를 완전히 떨어뜨리고 과일 충전물을 넣고 짜잔 파이를 만드는 중입니다. 이게 어디로 가는지 보이시죠? 각 데이터 유형이 무엇을 할 수 있는지 이해하고 이들을 함께 혼합하는 방법은 더 나은 프로그래머가 되는 열쇠입니다.
다음은 Python의 몇 가지 일반적인 데이터 유형입니다.
다음과 같은 다른 유형으로 더 세분화되는 숫자 :
정수: 0, 1, 2, 3
부동 소수점: 0.0, 1.0, 2.5, 3.145
문자열: 'Think Different', 'Netflix and Chill'
부울: 참, 거짓
파이썬에는 더 많은 데이터 유형이 있지만 지금은 이 세 가지에 중점을 둘 것입니다.
이 게시물에서는 Python의 기본 데이터 유형으로 수행할 수 있는 몇 가지 사항과 데이터 유형이 중요한 이유를 배웁니다.
내 경험에 따르면 이것은 "프로그래밍 방법 배우기" 책/비디오/온라인 과정에서 가장 지루한 부분이지만 데이터 유형은 프로그래밍에 매우 중요하기 때문에 이 게시물을 건너뛰지 않는 것이 좋습니다.
숫자
파이썬에서 숫자의 두 가지 주요 유형은 정수(정수)와 부동 소수점입니다. 부동 소수점은 소수로 생각할 수 있지만 몇 가지 큰 차이점이 있으며 그 중 하나는 나중에 설명합니다.
우리가 숫자로 할 수 있는 가장 분명한 것은...수학입니다! 다음은 Python에서 수학을 수행하는 데 사용되는 몇 가지 특수 문자입니다.
이러한 기본 작업을 통해 이제 몇 가지 시나리오를 수행할 수 있습니다.
시나리오 1
귀하의 콘텐츠 팀은 블로그가 2주 전에 80,000페이지뷰를 생성했으며 이번 주에는 105,000페이지뷰를 생성했다고 보고했습니다. 페이지뷰의 주간 증가율은 얼마입니까? 변경할 수 있는 백분율을 계산하려면 (새 번호 – 이전 번호) ÷ 이전 번호:
글쎄, 그것은 옳은 것 같지 않습니다. 왜 안 돼? 여느 수학자처럼 파이썬은 우리가 입력한 문장의 연산 순서를 따랐습니다. 여기에서 괄호를 사용하여 우리가 정말로 원하는 순서를 Python에 알릴 수 있습니다.
그게 낫다. 우리는 백분율을 보고 있다는 것을 기억하십시오. 따라서 이 경우 소수점 이하 두 자리를 오른쪽으로 이동하면 필요한 값을 얻을 수 있습니다. 블로그 트래픽이 주당 31.25% 증가한 것 같습니다.
시나리오 2
대형 배너 및 비디오 광고가 포함된 특별 캠페인을 실행하기 위해 온라인 게시자와 협력하고 있습니다. 게시자는 패키지의 고정 비용이 15,000달러이고 550,000회의 노출을 생성할 것으로 예상한다는 제안을 보냈습니다. 이 제안을 다른 옵션과 더 잘 비교하기 위해 CPM을 계산하려고 합니다.
CPM을 찾기 위해 캠페인 비용 ÷ (총 노출수 ÷ 1000) 공식을 사용합니다.
이번에는 작업 순서가 정확합니다. 캠페인의 CPM은 약 $27.27인 것 같습니다.
이와 같이 Python을 사용하는 것은 특히 긴 수식을 입력하면 단일 메트릭만 반환할 때 정말 지루합니다. 이러한 예는 단순하지만 수십만(또는 수백만) 행의 데이터에 더 복잡한 수학 연산을 적용하는 방법이 있습니다.
이전 버전의 Python(버전 2.7 이하)은 1 ÷ 3으로 나누는 것과 같이 부동 소수점이 되는 정수를 나눌 때 몇 가지 이상한 대답을 제공합니다. 이 두 예에서 우리는 정수를 나누고 부동 소수점으로 끝납니다. 최신 버전의 Python을 사용하는 마법의 일부인 문제 없이. 질문이 생깁니다. 소수점이 있는 숫자를 소수점이 아닌 부동 소수점이라고 하는 이유는 무엇입니까? Jackie Kazil과 Katharine Jarmul은 저서인 Data Wrangling With Python 에 훌륭한 예가 있습니다. 많은 프로그래밍 언어에서 0.1 + 0.2는 0.3과 같지 않습니다. 직접 해보십시오: 터미널에 0.3을 입력한 다음 0.1 + 0.2를 입력하세요.
이상하지? Mark Lutz는 자신의 저서 Learning Python 에서 이 기이함에 대해 더 자세히 설명합니다. 그러나 마케터는 일반적으로 숫자를 백만 분의 1까지 계산할 필요가 없으므로 이 문제를 완전히 이해하는 것이 중요하지 않으며 단순히 존재한다는 것만 아는 것으로 충분합니다. 하지만 정말 궁금한 점이 있다면 더 자세히 설명하는 게시물이 있습니다.
- 부동 소수점 이해하기, 1부
- 부동 소수점 이해하기, 2부
문자열
문자열은 따옴표로 묶인 문자로 생각할 수 있습니다. 이것은 바이트 배열, 유니코드, ASCII 등의 뉘앙스를 무시하기 때문에 지나치게 단순화된 정의입니다.
따옴표로 묶인 문자를 올바르게 입력하려면 어떻게 해야 합니까? 몇 가지 다른 방법보다 더 많은 것으로 나타났습니다. 예를 들어, 일관성을 유지하는 한 대부분의 경우 작은 따옴표를 사용하든 큰 따옴표를 사용하든 상관 없습니다.
세 번째 문자열에서 큰따옴표로 시작하여 작은따옴표로 끝나는 오류가 발생했습니다. 작은따옴표와 큰따옴표를 의도적으로 혼합하지 않을 수도 있지만 주의해야 할 점은 아포스트로피입니다.
큰따옴표로 묶인 첫 번째 문자열은 아포스트로피를 잘 처리했지만 두 번째 문자열은 그렇지 않았습니다. 왜요? Python이 두 번째 작은 따옴표를 만나면 문자열이 끝날 것으로 예상했지만 문자는 계속되었습니다. 문장을 자르면 오류가 사라집니다.
그러나 문장의 일부만 갖는 것은 유용하지 않습니다. 작은 따옴표를 정말로 정말로 사용하고 싶다면 한 가지 옵션은 아포스트로피를 "이스케이프"하는 것입니다. 문장에서 아포스트로피 바로 앞에 백슬래시(\)를 넣으면 됩니다. 이것은 파이썬이 다음 문자를 특별한 방식으로 처리하도록 지시합니다:
아포스트로피를 이스케이프하면 동일한 문자열에서 작은따옴표와 아포스트로피를 계속 사용할 수 있습니다.
파이썬에서 문자열을 생성할 수 있는 또 다른 방법이 있습니다: 삼중 따옴표. 여러 줄 문자열을 입력할 때 Enter 키를 눌러 다음 줄을 시작해야 합니다. 이것은 또한 터미널을 변경하여 새 줄의 왼쪽에 ...:를 표시합니다. 여러 줄의 코드를 입력하기 시작하면 다시 표시됩니다.
마지막으로 문자열에서 펑키한 문자를 볼 수 있습니다. \n. 이것은 새 줄을 입력한 위치를 컴퓨터에 알려줍니다. 문자열을 다시 인쇄해야 하고 형식을 정확하게 지정하려는 경우에 유용합니다.
자, 이제 우리는 문자열을 올바르게 입력하는 방법을 찾는 데 모든 시간을 보냈으므로(알겠습니다. 너무 간단한 작업에 너무 많은 작업이 필요합니다...) 재미있는 부분인 문자열 조작으로 넘어갈 시간입니다.
문자열에 대한 훨씬 더 많은 방법이 있습니다. 나중에 다룰 패턴 일치 및 슬라이싱과 같은 다른 전체 주제도 있습니다. 기본적인 사항은 생략하고 실제 예제를 통해 작업해 보겠습니다.
시나리오 1
AdWords에 업로드해야 하는 새 사본이 있지만 모든 사본이 소문자이고 헤드라인이 30자 이내인지 확실하지 않다고 가정해 보겠습니다. 길이를 확인하고 제목 케이스에 "파리로 가는 가장 저렴한 항공편"이라는 제목을 인쇄해 보겠습니다.
첫 번째 예는 기술적으로 함수이고 두 번째 예는 메서드입니다. 지금 우리가 관심을 갖는 유일한 것은 각각이 다르게 입력된다는 것입니다. 함수를 사용하여 먼저 "len("을 입력한 다음 문자열 자체를 입력하고 마지막으로 마지막 괄호 ")"를 입력합니다. 좋은 소식은 헤드라인이 AdWords에서 시행하는 30자 제한 이내라는 것입니다.
다음으로 메서드를 사용하여 먼저 문자열을 입력한 다음 닫는 따옴표 뒤에 .title()을 추가합니다(공백 없이!).
마지막으로 "Excel에서 동일한 수식을 사용할 수 있는데 왜 Python에서 이 작업을 수행하고 있습니까?"라고 자문할 수 있습니다. 그것은 정당한 지적입니다.
헤드라인을 어지럽히는 것은 어리석은 예이지만 요점이 명확하기를 바랍니다. Python으로 텍스트를 조작하는 데 사용할 수 있는 옵션이 많이 있습니다. 그리고 CPM 또는 퍼센트 변화를 계산하는 이전 시나리오와 유사하게 몇 줄의 코드로 수천 개의 텍스트 문자를 조작할 수 있다는 것은 매우 편리한 매우 강력한 도구입니다.
예를 들어, 이것이 나를 구한 가장 큰 골칫거리는 Google Analytics에서 수백만 행의 URL을 정리하는 것입니다. 이 연습의 두 번째 요점은 미래에 다른 고통을 덜어줄 수 있는 것을 지적하는 것입니다. Excel 또는 Google 문서에서 수식을 사용하는 방법을 알고 있다면 프로그래밍 방법을 이해하는 데 이미 한 단계 앞서 있는 것입니다. Excel에서 Python으로 변환할 유사점이 많이 있습니다.
부울
Python의 두 가지 주요 부울은 True와 False입니다. 그 의미는 정말 간단합니다. True는 참을 의미하고 False는 거짓을 의미합니다.
우리가 파이썬에서 논리를 사용하기 전까지는 비유를 통해 부울을 설명하는 것이 가장 좋습니다. Facebook 동영상 광고 캠페인을 만들 때 사용할 광고 소재를 결정해야 합니다. 브랜드 인지도를 목표로 하는 최신 유행하는 동영상이어야 합니까, 아니면 명확한 클릭 유도문안이 있는 오래되었지만 전투 테스트를 거친 동영상을 고수해야 합니까? 그것은 당신이 성취하려고하는 것에 달려 있습니다. 맞습니까? 유사하게, 어떤 경로를 따라야 하는지 컴퓨터에 알려주기 위해 논리를 생성해야 하는 시점이 있을 것이며 부울은 해당 작업을 수행하는 한 가지 방법입니다.
부울처럼 작동할 수 있는 Python의 다른 객체가 있지만 지금은 True와 False를 소개하는 것으로 충분합니다. 이 주제에 대해서는 다음 포스트에서 더 자세히 다루도록 하겠습니다.
그래서 무엇?
이 게시물의 시작 부분에서 데이터 유형에 대해 처음 배우려고 할 때 프로세스가 지루하고 주제가 둔하다고 언급했습니다. 마치 “이 쓸데없는 쓰레기를 내가 언제쯤 알 필요가 있겠어?”
데이터 유형에 대한 이러한 모든 규칙을 살펴보는 것은 무의미하다고 느꼈습니다. 그러나 나는 이러한 규칙을 깨려고 할 때(대부분의 경우) 오류가 발생하기 때문에 규칙에 감사하게 되었습니다. 책임 있는 프로그래머이고 미리 코드를 테스트하는 경우 이러한 오류가 발생하면 정말 중요할 때 코드에서 치명적인 실수를 저지르는 것을 방지할 수 있습니다. 오류가 나타날 수 있는 몇 가지 방법을 살펴보겠습니다.
숫자 유형을 사용하여 수학을 연습한 시나리오에서 이러한 계산을 수행할 때 쉼표가 사용되지 않았음을 알 수 있습니까? 아마도 쉼표로 숫자를 입력하는 데 익숙할 것입니다(유럽 친구들의 경우 소수점 이하!). 하지만 Python에서 시도하면 이상한 동작이 발생합니다.
흠; 전혀 예상하지 못했습니다. 이 숫자에 쉼표를 넣어 우리는 자신도 모르게 "튜플"을 만들었습니다. 현재 튜플이 무엇인지 알 필요는 없지만 쉼표가 숫자를 500과 0으로 나누는 것을 보는 것이 중요합니다. 이는 500,000과는 많이 다릅니다.
이 예제는 또한 코드 작성의 중요한 측면을 강조합니다. 잘못 입력된 문자 하나만으로도 큰 문제가 발생할 수 있습니다. 코드 교정은 처음에는 어렵지만 연습하면 좋아질 것입니다. 예기치 않은 결과나 오류는 당황할 일이 아닙니다. 무섭게 느껴질 수 있지만 일반적으로 번역에서 무언가가 손실되었다는 의미일 뿐입니다.
아마도 예상할 수 있는 한 가지 규칙은 정수와 문자열을 추가하려고 할 때 오류가 발생한다는 것입니다.
그리고 당신이 옳을 것입니다. 코드의 두 번째 줄에서 정수 1을 문자열 '1'에 추가하려고 시도하여 오류가 발생했습니다. 당신은 속으로 생각할 수도 있습니다. 누군가가 언제 문자열에 정수를 추가하려고 합니까?” 얼마나 많은 API가 숫자를 문자열로 반환하는지 놀랄 것입니다. 이렇게 하는 데에는 아주 좋은 이유가 있지만 API를 다룰 때 숫자가 숫자일 것이라고 가정하는 것은 안전한 방법이 아닙니다. 한 가지 좋은 예는 최신 Google Analytics 보고 API입니다. 보고서를 요청할 때 Google 애널리틱스에서 제공하는 데이터의 스크린샷을 살펴보세요. 놀라다! 모든 숫자("값" 필드 참조)는 따옴표로 묶여 있습니다.
그런 종류의 물건에 렌치를 던집니다. 그렇지 않나요? 그럴 수도 있지만 미리 API 설명서를 읽으면 이 문제가 예상됩니다. 운 좋게도 Python에는 int() 함수와 같이 우리를 도울 수 있는 몇 가지 도구가 있습니다.
int() 함수 안에 문자열 '1'을 배치함으로써 우리는 파이썬에게 이것을 정수처럼 취급하기를 원한다는 것을 알립니다. 이제 이 숫자를 더하고 계속 생활할 수 있습니다.
이것은 데이터 유형이 Python에서 수행할 수 있는 작업을 결정하는 방법에 대한 몇 가지 가능성에 불과하지만 거의 항상 이러한 문제를 해결할 수 있는 방법이 있음을 보여줍니다. 데이터 유형에 대해 질문이 있는 경우 트위터에서 저에게 연락하십시오.